From b4dfd18a88a6df831c7a095a16ab879962e239fd Mon Sep 17 00:00:00 2001 From: Muhammad Atif Ali Date: Mon, 6 Oct 2025 16:47:06 +0500 Subject: [PATCH 1/3] fix: prevent duplicate preview release comments Only create a PR comment if one doesn't already exist. This prevents spam when the workflow runs multiple times. --- .github/workflows/pr-preview-release.yml | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/.github/workflows/pr-preview-release.yml b/.github/workflows/pr-preview-release.yml index 437cba5..10b5270 100644 --- a/.github/workflows/pr-preview-release.yml +++ b/.github/workflows/pr-preview-release.yml @@ -63,6 +63,15 @@ jobs: const prNumber = ${{ steps.pr.outputs.number }}; const releaseTag = `agentapi_${prNumber}`; const repoUrl = `https://github.com/${context.repo.owner}/${context.repo.repo}`; + + const comments = await github.rest.issues.listComments({ + issue_number: prNumber, + owner: context.repo.owner, + repo: context.repo.repo + }); + + if (comments.data.some(c => c.body.includes('✅ Preview binaries are ready!'))) return; + github.rest.issues.createComment({ issue_number: prNumber, owner: context.repo.owner, From 73fbb2d60c299be13ce81ef0323be5dfcd12f14c Mon Sep 17 00:00:00 2001 From: Atif Ali Date: Mon, 6 Oct 2025 16:55:41 +0500 Subject: [PATCH 2/3] test commit --- .github/workflows/pr-preview-release.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/pr-preview-release.yml b/.github/workflows/pr-preview-release.yml index 10b5270..52df037 100644 --- a/.github/workflows/pr-preview-release.yml +++ b/.github/workflows/pr-preview-release.yml @@ -69,7 +69,7 @@ jobs: owner: context.repo.owner, repo: context.repo.repo }); - + // test if (comments.data.some(c => c.body.includes('✅ Preview binaries are ready!'))) return; github.rest.issues.createComment({ @@ -77,4 +77,4 @@ jobs: owner: context.repo.owner, repo: context.repo.repo, body: `✅ Preview binaries are ready!\n\nTo test with modules: \`\`\`agentapi_version = "agentapi_${prNumber}"\`\`\` or download from: ${repoUrl}/releases/tag/${releaseTag}` - }); \ No newline at end of file + }); From ced842cc25caa1a968e995f4d4377fd5d0a212ed Mon Sep 17 00:00:00 2001 From: Muhammad Atif Ali Date: Mon, 6 Oct 2025 17:04:12 +0500 Subject: [PATCH 3/3] fix: use step output to prevent duplicate comments Add should_comment flag that's set based on whether a release is created (not updated). Only comment when creating new releases. --- .github/workflows/pr-preview-release.yml | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/.github/workflows/pr-preview-release.yml b/.github/workflows/pr-preview-release.yml index 52df037..898e913 100644 --- a/.github/workflows/pr-preview-release.yml +++ b/.github/workflows/pr-preview-release.yml @@ -37,6 +37,7 @@ jobs: run-id: ${{ github.event.workflow_run.id }} - name: Create or Update PR Release + id: release env: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} RELEASE_TAG: "agentapi_${{ steps.pr.outputs.number }}" @@ -46,6 +47,7 @@ jobs: if gh release view "$RELEASE_TAG" --repo ${{ github.repository }} &>/dev/null; then echo "Updating release $RELEASE_TAG" gh release upload "$RELEASE_TAG" ./out/* --clobber --repo ${{ github.repository }} + echo "should_comment=false" >> "${GITHUB_OUTPUT}" else echo "Creating release $RELEASE_TAG" gh release create "$RELEASE_TAG" ./out/* \ @@ -54,24 +56,17 @@ jobs: --repo ${{ github.repository }} \ --latest=false \ --prerelease + echo "should_comment=true" >> "${GITHUB_OUTPUT}" fi - name: Comment on PR + if: steps.release.outputs.should_comment == 'true' uses: actions/github-script@v7 with: script: | const prNumber = ${{ steps.pr.outputs.number }}; const releaseTag = `agentapi_${prNumber}`; const repoUrl = `https://github.com/${context.repo.owner}/${context.repo.repo}`; - - const comments = await github.rest.issues.listComments({ - issue_number: prNumber, - owner: context.repo.owner, - repo: context.repo.repo - }); - // test - if (comments.data.some(c => c.body.includes('✅ Preview binaries are ready!'))) return; - github.rest.issues.createComment({ issue_number: prNumber, owner: context.repo.owner,