diff --git a/.changeset/nine-eggs-hug.md b/.changeset/nine-eggs-hug.md new file mode 100644 index 0000000000..ba47032dba --- /dev/null +++ b/.changeset/nine-eggs-hug.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-scaffolder-backend-module-gitlab': patch +--- + +Made "gitlab:projectVariable:create" action idempotent diff --git a/plugins/scaffolder-backend-module-gitlab/src/actions/gitlabProjectVariableCreate.ts b/plugins/scaffolder-backend-module-gitlab/src/actions/gitlabProjectVariableCreate.ts index 3a9eeec0a1..cab4410cc6 100644 --- a/plugins/scaffolder-backend-module-gitlab/src/actions/gitlabProjectVariableCreate.ts +++ b/plugins/scaffolder-backend-module-gitlab/src/actions/gitlabProjectVariableCreate.ts @@ -88,12 +88,17 @@ export const createGitlabProjectVariableAction = (options: { const api = getClient({ host, integrations, token }); - await api.ProjectVariables.create(projectId, key, value, { - variableType: variableType as VariableType, - protected: variableProtected, - masked, - raw, - environmentScope, + await ctx.checkpoint({ + key: `create.project.variables.${projectId}.${key}.${value}`, + fn: async () => { + await api.ProjectVariables.create(projectId, key, value, { + variableType: variableType as VariableType, + protected: variableProtected, + masked, + raw, + environmentScope, + }); + }, }); }, });