From 8c3868751c8278396f7669a0cc3c9974172381f3 Mon Sep 17 00:00:00 2001 From: Bogdan Nechyporenko Date: Fri, 14 Mar 2025 22:15:15 +0100 Subject: [PATCH] Made "github:issues:label" action idempotent Signed-off-by: Bogdan Nechyporenko --- .changeset/lazy-toys-tease.md | 5 +++++ .../src/actions/githubIssuesLabel.ts | 15 ++++++++++----- 2 files changed, 15 insertions(+), 5 deletions(-) create mode 100644 .changeset/lazy-toys-tease.md diff --git a/.changeset/lazy-toys-tease.md b/.changeset/lazy-toys-tease.md new file mode 100644 index 0000000000..c9c180c0f7 --- /dev/null +++ b/.changeset/lazy-toys-tease.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-scaffolder-backend-module-github': patch +--- + +Made "github:issues:label" action idempotent diff --git a/plugins/scaffolder-backend-module-github/src/actions/githubIssuesLabel.ts b/plugins/scaffolder-backend-module-github/src/actions/githubIssuesLabel.ts index 8bba9f244b..7dd116be79 100644 --- a/plugins/scaffolder-backend-module-github/src/actions/githubIssuesLabel.ts +++ b/plugins/scaffolder-backend-module-github/src/actions/githubIssuesLabel.ts @@ -101,11 +101,16 @@ export function createGithubIssuesLabelAction(options: { ); try { - await client.rest.issues.addLabels({ - owner, - repo, - issue_number: number, - labels, + await ctx.checkpoint({ + key: `github.issues.add.label.${owner}.${repo}.${number}`, + fn: async () => { + await client.rest.issues.addLabels({ + owner, + repo, + issue_number: number, + labels, + }); + }, }); } catch (e) { assertError(e);