diff --git a/.changeset/heavy-olives-thank.md b/.changeset/heavy-olives-thank.md new file mode 100644 index 0000000000..984b5cb160 --- /dev/null +++ b/.changeset/heavy-olives-thank.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-scaffolder-backend-module-gitlab': patch +--- + +Action createGitlabProjectMigrateAction writes migration Id to its output diff --git a/plugins/scaffolder-backend-module-gitlab/src/actions/gitlabProjectMigrate.examples.test.ts b/plugins/scaffolder-backend-module-gitlab/src/actions/gitlabProjectMigrate.examples.test.ts index 869bda30ec..d577adc896 100644 --- a/plugins/scaffolder-backend-module-gitlab/src/actions/gitlabProjectMigrate.examples.test.ts +++ b/plugins/scaffolder-backend-module-gitlab/src/actions/gitlabProjectMigrate.examples.test.ts @@ -24,7 +24,9 @@ import yaml from 'yaml'; const mockGitlabClient = { Migrations: { - create: jest.fn(), + create: jest.fn(() => ({ + id: 0, + })), }, }; diff --git a/plugins/scaffolder-backend-module-gitlab/src/actions/gitlabProjectMigrate.test.ts b/plugins/scaffolder-backend-module-gitlab/src/actions/gitlabProjectMigrate.test.ts index 8e3bc6560d..e1bf9af138 100644 --- a/plugins/scaffolder-backend-module-gitlab/src/actions/gitlabProjectMigrate.test.ts +++ b/plugins/scaffolder-backend-module-gitlab/src/actions/gitlabProjectMigrate.test.ts @@ -22,7 +22,9 @@ import { createMockDirectory } from '@backstage/backend-test-utils'; const mockGitlabClient = { Migrations: { - create: jest.fn(), + create: jest.fn(() => ({ + id: 0, + })), }, }; diff --git a/plugins/scaffolder-backend-module-gitlab/src/actions/gitlabProjectMigrate.ts b/plugins/scaffolder-backend-module-gitlab/src/actions/gitlabProjectMigrate.ts index 659215c1c0..8f6e3ed2cc 100644 --- a/plugins/scaffolder-backend-module-gitlab/src/actions/gitlabProjectMigrate.ts +++ b/plugins/scaffolder-backend-module-gitlab/src/actions/gitlabProjectMigrate.ts @@ -89,6 +89,10 @@ export const createGitlabProjectMigrateAction = (options: { title: 'URL to the newly imported repo', type: 'string', }, + migrationId: { + title: 'Id of the migration that imports the project', + type: 'number', + }, }, }, }, @@ -135,17 +139,21 @@ export const createGitlabProjectMigrateAction = (options: { }; try { - await api.Migrations.create(sourceConfig, migrationEntity); + const { id: migrationId } = await api.Migrations.create( + sourceConfig, + migrationEntity, + ); + + ctx.output( + 'importedRepoUrl', + `${destinationHost}/${destinationNamespace}/${destinationSlug}`, + ); + ctx.output('migrationId', migrationId); } catch (e: any) { throw new InputError( `Failed to transfer repo ${sourceFullPath}. Make sure that ${sourceFullPath} exists in ${sourceUrl}, and token has enough rights.\nError: ${e}`, ); } - - ctx.output( - 'importedRepoUrl', - `${destinationHost}/${destinationNamespace}/${destinationSlug}`, - ); }, }); };