Made "gitlab:projectDeployToken:create" action idempotent
Signed-off-by: Bogdan Nechyporenko <bnechyporenko@bol.com>
This commit is contained in:
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/plugin-scaffolder-backend-module-gitlab': patch
|
||||
---
|
||||
|
||||
Made "gitlab:projectDeployToken:create" action idempotent
|
||||
+23
-13
@@ -70,21 +70,31 @@ export const createGitlabProjectDeployTokenAction = (options: {
|
||||
token: token,
|
||||
});
|
||||
|
||||
const deployToken = await api.DeployTokens.create(
|
||||
name,
|
||||
scopes as DeployTokenScope[],
|
||||
{
|
||||
projectId,
|
||||
username,
|
||||
const { deployToken, deployUsername } = await ctx.checkpoint({
|
||||
key: `create.deploy.token.${projectId}.${name}`,
|
||||
fn: async () => {
|
||||
const res = await api.DeployTokens.create(
|
||||
name,
|
||||
scopes as DeployTokenScope[],
|
||||
{
|
||||
projectId,
|
||||
username,
|
||||
},
|
||||
);
|
||||
|
||||
if (!res.hasOwnProperty('token')) {
|
||||
throw new InputError(`No deploy_token given from gitlab instance`);
|
||||
}
|
||||
|
||||
return {
|
||||
deployToken: res.token as string,
|
||||
deployUsername: res.username,
|
||||
};
|
||||
},
|
||||
);
|
||||
});
|
||||
|
||||
if (!deployToken.hasOwnProperty('token')) {
|
||||
throw new InputError(`No deploy_token given from gitlab instance`);
|
||||
}
|
||||
|
||||
ctx.output('deploy_token', deployToken.token as string);
|
||||
ctx.output('user', deployToken.username);
|
||||
ctx.output('deploy_token', deployToken);
|
||||
ctx.output('user', deployUsername);
|
||||
},
|
||||
});
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user