13 KiB
@backstage/plugin-scaffolder-backend
0.6.0
Minor Changes
-
cdea0baf1: The scaffolder is updated to generate a unique workspace directory inside the temp folder. This directory is cleaned up by the job processor after each run.The prepare/template/publish steps have been refactored to operate on known directories,
template/andresult/, inside the temporary workspace path.Updated preparers to accept the template url instead of the entire template. This is done primarily to allow for backwards compatibility between v1 and v2 scaffolder templates.
Fixes broken GitHub actions templating in the Create React App template.
For those with custom preparers, templates, or publishers
The preparer interface has changed, the prepare method now only takes a single argument, and doesn't return anything. As part of this change the preparers were refactored to accept a URL pointing to the target directory, rather than computing that from the template entity.
The
workingDirectoryoption was also removed, and replaced with aworkspacePathoption. The difference between the two is thatworkingDirectorywas a place for the preparer to create temporary directories, while theworkspacePathis the specific folder were the entire templating process for a single template job takes place. Instead of returning a path to the folder were the prepared contents were placed, the contents are put at the<workspacePath>/templatepath.type PreparerOptions = { - workingDirectory?: string; + /** + * Full URL to the directory containg template data + */ + url: string; + /** + * The workspace path that will eventually be the the root of the new repo + */ + workspacePath: string; logger: Logger; }; -prepare(template: TemplateEntityV1alpha1, opts?: PreparerOptions): Promise<string> +prepare(opts: PreparerOptions): Promise<void>;Instead of returning a path to the folder were the templaters contents were placed, the contents are put at the
<workspacePath>/resultpath. All templaters now also expect the source template to be present in thetemplatedirectory within theworkspacePath.export type TemplaterRunOptions = { - directory: string; + workspacePath: string; values: TemplaterValues; logStream?: Writable; dockerClient: Docker; }; -public async run(options: TemplaterRunOptions): Promise<TemplaterRunResult> +public async run(options: TemplaterRunOptions): Promise<void>Just like the preparer and templaters, the publishers have also switched to using
workspacePath. The root of the new repo is expected to be located at<workspacePath>/result.export type PublisherOptions = { values: TemplaterValues; - directory: string; + workspacePath: string; logger: Logger; };
Patch Changes
-
a26668913: Attempt to fix windows test errors in master -
529d16d27: # Repo visibility for GitLab and BitBucket reposNOTE: This changes default repo visibility from
privatetopublicfor GitLab and BitBucket which is consistent with the GitHub default. If you were counting onprivatevisibility, you'll need to update your scaffolder config to useprivate.This adds repo visibility feature parity with GitHub for GitLab and BitBucket.
To configure the repo visibility, set scaffolder.type.visibility as in this example:
scaffolder: github: visibility: private # 'public' or 'internal' or 'private' (default is 'public') gitlab: visibility: public # 'public' or 'internal' or 'private' (default is 'public') bitbucket: visibility: public # 'public' or 'private' (default is 'public') -
Updated dependencies [
c4abcdb60] -
Updated dependencies [
2430ee7c2] -
Updated dependencies [
6e612ce25] -
Updated dependencies [
025e122c3] -
Updated dependencies [
064c513e1] -
Updated dependencies [
7881f2117] -
Updated dependencies [
3149bfe63] -
Updated dependencies [
2e62aea6f] -
Updated dependencies [
11cb5ef94]- @backstage/integration@0.3.2
- @backstage/backend-common@0.5.2
- @backstage/catalog-model@0.7.1
0.5.2
Patch Changes
-
26a3a6cf0: Honor the branch ref in the url when cloning.This fixes a bug in the scaffolder prepare stage where a non-default branch was specified in the scaffolder URL but the default branch was cloned. For example, even though the
otherbranch is specified in this example, themasterbranch was actually cloned:catalog: locations: - type: url target: https://github.com/backstage/backstage/blob/other/plugins/scaffolder-backend/sample-templates/docs-template/template.yamlThis also fixes a 404 in the prepare stage for GitLab URLs.
-
9dd057662: Upgrade git-url-parse to v11.4.4 which fixes parsing an Azure DevOps branch ref. -
Updated dependencies [
26a3a6cf0] -
Updated dependencies [
664dd08c9] -
Updated dependencies [
6800da78d] -
Updated dependencies [
9dd057662]- @backstage/backend-common@0.5.1
- @backstage/integration@0.3.1
0.5.1
Patch Changes
0ea002378: Fixing issues with templating and full URL's asstorePath's
0.5.0
Minor Changes
-
ed6baab66: - Deprecating thescaffolder.${provider}.tokenauth duplication and favoringintegrations.${provider}instead. If you receive deprecation warnings your config should change like the following:scaffolder: github: token: $env: GITHUB_TOKEN visibility: publicTo something that looks like this:
integration: github: - host: github.com token: $env: GITHUB_TOKEN scaffolder: github: visibility: publicYou can also configure multiple different hosts under the
integrationconfig like the following:integration: github: - host: github.com token: $env: GITHUB_TOKEN - host: ghe.mycompany.com token: $env: GITHUB_ENTERPRISE_TOKENThis of course is the case for all the providers respectively.
-
Adding support for cross provider scaffolding, you can now create repositories in for example Bitbucket using a template residing in GitHub.
-
Fix GitLab scaffolding so that it returns a
catalogInfoUrlwhich automatically imports the project into the catalog. -
The
Store Pathfield on thescaffolderfrontend has now changed so that you require the full URL to the desired destination repository.
backstage/new-repositorywould becomehttps://github.com/backstage/new-repositoryif provider was GitHub for example. -
Patch Changes
- Updated dependencies [
def2307f3] - Updated dependencies [
0b135e7e0] - Updated dependencies [
294a70cab] - Updated dependencies [
fa8ba330a] - Updated dependencies [
0ea032763] - Updated dependencies [
5345a1f98] - Updated dependencies [
ed6baab66] - Updated dependencies [
09a370426] - Updated dependencies [
a93f42213]- @backstage/catalog-model@0.7.0
- @backstage/backend-common@0.5.0
- @backstage/integration@0.3.0
0.4.1
Patch Changes
-
94fdf4955: Get rid of all usages of @octokit/types, and bump the rest of the octokit dependencies to the latest version -
cc068c0d6: Bump the gitbeaker dependencies to 28.x.To update your own installation, go through the
package.jsonfiles of all of your packages, and ensure that all dependencies on@gitbeaker/nodeor@gitbeaker/coreare at version^28.0.2. Then runyarn installat the root of your repo. -
711ba55a2: Export all preparers and publishers properly -
Updated dependencies [
466354aaa] -
Updated dependencies [
f3b064e1c] -
Updated dependencies [
abbee6fff] -
Updated dependencies [
147fadcb9]- @backstage/integration@0.2.0
- @backstage/catalog-model@0.6.1
- @backstage/backend-common@0.4.3
0.4.0
Minor Changes
5eb8c9b9e: Fix GitLab scaffolder publisher
Patch Changes
7e3451700: bug(scaffolder): Ignore the .git folder when adding dot-files to the index
0.3.7
Patch Changes
37a5244ef: Add scaffolding support for Bitbucket Cloud and Server.00042e73c: Moving the Git actions to isomorphic-git instead of the node binding version of nodegit9efbc5585: Add config schema for Bitbucket scaffolder- Updated dependencies [
5ecd50f8a] - Updated dependencies [
00042e73c] - Updated dependencies [
0829ff126] - Updated dependencies [
036a84373]- @backstage/backend-common@0.4.2
- @backstage/integration@0.1.5
0.3.6
Patch Changes
19554f6d6: Added GitHub Actions for Create React App, and allow better imports of files inside a module when they're exposed usingfilesinpackage.json33a82a713: GitLab preparer uses the right token (primarily the same one as the publisher, falling back to the integrations token)aed8f7f12: Clearer error message when preparer or publisher type can't be determined.
0.3.5
Patch Changes
94c65a9d4: Added configuration schema for the commonly used properties- Updated dependencies [
c911061b7] - Updated dependencies [
1d1c2860f] - Updated dependencies [
0e6298f7e] - Updated dependencies [
4eafdec4a] - Updated dependencies [
ac3560b42]- @backstage/catalog-model@0.6.0
- @backstage/backend-common@0.4.1
0.3.4
Patch Changes
1e22f8e0b: Unifydockerodelibrary and type dependency versions- Updated dependencies [
38e24db00] - Updated dependencies [
e3bd9fc2f] - Updated dependencies [
12bbd748c] - Updated dependencies [
83b6e0c1f] - Updated dependencies [
e3bd9fc2f]- @backstage/backend-common@0.4.0
- @backstage/config@0.1.2
- @backstage/catalog-model@0.5.0
0.3.3
Patch Changes
- Updated dependencies [
612368274] - Updated dependencies [
08835a61d] - Updated dependencies [
a9fd599f7] - Updated dependencies [
bcc211a08]- @backstage/backend-common@0.3.3
- @backstage/catalog-model@0.4.0
0.3.2
Patch Changes
ef2831dde: Move constructing the catalog-info.yaml URL for scaffolded components to the publishers5a1d8dca3: Fix React entity YAML filename to new standard- Updated dependencies [
1166fcc36] - Updated dependencies [
bff3305aa] - Updated dependencies [
1185919f3] - Updated dependencies [
b47dce06f]- @backstage/catalog-model@0.3.0
- @backstage/backend-common@0.3.1
0.3.1
Patch Changes
d33f5157c: Extracted pushToRemote function for reuse between publishers- Updated dependencies [
1722cb53c] - Updated dependencies [
1722cb53c] - Updated dependencies [
7b37e6834] - Updated dependencies [
8e2effb53]- @backstage/backend-common@0.3.0
0.3.0
Minor Changes
-
59166e5ec:createRouterof scaffolder backend will now require additional option asentityClientwhich could be generated byCatalogEntityClientinplugin-scaffolder-backendpackage. Here is example to generateentityClient.import { CatalogEntityClient } from '@backstage/plugin-scaffolder-backend'; import { SingleHostDiscovery } from '@backstage/backend-common'; const discovery = SingleHostDiscovery.fromConfig(config); const entityClient = new CatalogEntityClient({ discovery });- Scaffolder's API
/v1/jobswill accepttemplateNameinstead oftemplateEntity.
- Scaffolder's API
Patch Changes
- Updated dependencies [
33b7300eb]- @backstage/backend-common@0.2.1
0.2.0
Minor Changes
-
3e254503d: Add Azure DevOps support to the scaffolder backendThis adds support for Azure DevOps to the scaffolder (preparer & publisher). I thought I should get this in there now since #2426 has been merged. I had a previous PR with only the preparer but I closed that in favor of this one.
I stayed with the 'azure/api' structure but I guess we should try and go the same way as with GitHub here #2501
Patch Changes
-
0c370c979: Update SSR template to pass CI -
991a950e0: Added .fromConfig static factories for Preparers and Publishers + read integrations config to support url location types -
c926765a2: Allow templates to be located on non-default branch -
6840a68df: Add authentication token to Scaffolder GitHub Preparer -
1c8c43756: The newscaffolder.github.baseUrlconfig property allows to specify a custom base url for GitHub Enterprise instances -
5e4551e3a: Added support for configuring the working directory of the Scaffolder:backend: workingDirectory: /some-dir # Use this to configure a working directory for the scaffolder, defaults to the OS temp-dir -
e3d063ffa: Introduce PreparerOptions for PreparerBase -
Updated dependencies [
3a4236570] -
Updated dependencies [
e0be86b6f] -
Updated dependencies [
f70a52868] -
Updated dependencies [
12b5fe940] -
Updated dependencies [
5249594c5] -
Updated dependencies [
56e4eb589] -
Updated dependencies [
e37c0a005] -
Updated dependencies [
a768a07fb] -
Updated dependencies [
f00ca3cb8] -
Updated dependencies [
6579769df] -
Updated dependencies [
5adfc005e] -
Updated dependencies [
8c2b76e45] -
Updated dependencies [
440a17b39] -
Updated dependencies [
fa56f4615] -
Updated dependencies [
8afce088a] -
Updated dependencies [
b3d57961c] -
Updated dependencies [
7bbeb049f]- @backstage/catalog-model@0.2.0
- @backstage/backend-common@0.2.0