diff --git a/.changeset/grumpy-humans-brush.md b/.changeset/grumpy-humans-brush.md index dda0b61b3c..fd117d7190 100644 --- a/.changeset/grumpy-humans-brush.md +++ b/.changeset/grumpy-humans-brush.md @@ -1,6 +1,5 @@ --- '@backstage/plugin-scaffolder-backend-module-gitlab': patch -'@backstage/plugin-scaffolder-node': patch --- Made gitlab:issue:edit action idempotent. diff --git a/plugins/scaffolder-backend-module-gitlab/src/actions/gitlabIssueEdit.ts b/plugins/scaffolder-backend-module-gitlab/src/actions/gitlabIssueEdit.ts index 4f50495ab2..0754892308 100644 --- a/plugins/scaffolder-backend-module-gitlab/src/actions/gitlabIssueEdit.ts +++ b/plugins/scaffolder-backend-module-gitlab/src/actions/gitlabIssueEdit.ts @@ -16,10 +16,7 @@ import { InputError } from '@backstage/errors'; import { ScmIntegrationRegistry } from '@backstage/integration'; -import { - createTemplateAction, - generateStableHash, -} from '@backstage/plugin-scaffolder-node'; +import { createTemplateAction } from '@backstage/plugin-scaffolder-node'; import commonGitlabConfig, { IssueStateEvent, IssueType, @@ -227,9 +224,7 @@ export const editGitlabIssueAction = (options: { }; const editedIssue = await ctx.checkpoint({ - key: `issue.edit.${projectId}.${issueIid}.${generateStableHash( - editIssueOptions, - )}`, + key: `issue.edit.${projectId}.${issueIid}`, fn: async () => { const response = (await api.Issues.edit( projectId, diff --git a/plugins/scaffolder-node/package.json b/plugins/scaffolder-node/package.json index 234a1c6a8a..80dbe0b431 100644 --- a/plugins/scaffolder-node/package.json +++ b/plugins/scaffolder-node/package.json @@ -62,7 +62,6 @@ "@backstage/plugin-scaffolder-common": "workspace:^", "@backstage/types": "workspace:^", "concat-stream": "^2.0.0", - "fast-json-stable-stringify": "^2.1.0", "fs-extra": "^11.2.0", "globby": "^11.0.0", "isomorphic-git": "^1.23.0", diff --git a/plugins/scaffolder-node/report.api.md b/plugins/scaffolder-node/report.api.md index c4244bbe37..2d3e418efb 100644 --- a/plugins/scaffolder-node/report.api.md +++ b/plugins/scaffolder-node/report.api.md @@ -219,9 +219,6 @@ export function fetchFile(options: { token?: string; }): Promise; -// @public -export function generateStableHash(entity: object): string; - // @public (undocumented) export const getRepoSourceDirectory: ( workspacePath: string, diff --git a/plugins/scaffolder-node/src/actions/index.ts b/plugins/scaffolder-node/src/actions/index.ts index 126ccc13db..c1c8551c53 100644 --- a/plugins/scaffolder-node/src/actions/index.ts +++ b/plugins/scaffolder-node/src/actions/index.ts @@ -33,8 +33,4 @@ export { createBranch, cloneRepo, } from './gitHelpers'; -export { - parseRepoUrl, - getRepoSourceDirectory, - generateStableHash, -} from './util'; +export { parseRepoUrl, getRepoSourceDirectory } from './util'; diff --git a/plugins/scaffolder-node/src/actions/util.ts b/plugins/scaffolder-node/src/actions/util.ts index 607d463a09..5e4ce60a1a 100644 --- a/plugins/scaffolder-node/src/actions/util.ts +++ b/plugins/scaffolder-node/src/actions/util.ts @@ -14,8 +14,6 @@ * limitations under the License. */ -import stableStringify from 'fast-json-stable-stringify'; -import { createHash } from 'crypto'; import { InputError } from '@backstage/errors'; import { isChildPath } from '@backstage/backend-plugin-api'; import { join as joinPath, normalize as normalizePath } from 'path'; @@ -126,15 +124,3 @@ function checkRequiredParams(repoUrl: URL, ...params: string[]) { } } } - -/** - * @public - * - * Intended to be used in checkpoint function. - * If the object has to be part of the checkpoint's key, this function will help you create a hash for it. - */ -export function generateStableHash(entity: object) { - return createHash('sha1') - .update(stableStringify({ ...entity })) - .digest('hex'); -} diff --git a/yarn.lock b/yarn.lock index 30424dff6c..dc2c9de764 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7501,7 +7501,6 @@ __metadata: "@backstage/plugin-scaffolder-common": "workspace:^" "@backstage/types": "workspace:^" concat-stream: ^2.0.0 - fast-json-stable-stringify: ^2.1.0 fs-extra: ^11.2.0 globby: ^11.0.0 isomorphic-git: ^1.23.0