Skip to content
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 12 additions & 8 deletions .github/workflows/publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ jobs:
contains(github.event.pull_request.labels.*.name, 'major') ) }}
steps:
- name: Checkout the repository
uses: actions/checkout@93ea575cb5d8a053eaa0ac8fa3b40d7e05a33cc8
uses: actions/checkout@v5
Comment thread
Thejus-Paul marked this conversation as resolved.
Outdated
with:
token: ${{ secrets.RELEASE_PAT }}

Expand All @@ -30,7 +30,7 @@ jobs:
git config user.email "neetobot.github@neeto.com"

- name: Setup NodeJS LTS version
uses: actions/setup-node@8c91899e586c5b171469028077307d293428b516
uses: actions/setup-node@v5
with:
node-version-file: ".nvmrc"

Expand Down Expand Up @@ -63,15 +63,19 @@ jobs:
id: package-version

- name: Create a new version release commit
uses: EndBug/add-and-commit@v9
uses: EndBug/add-and-commit@v10
with:
message: "New version release"
push: false

- name: Push the commit to main
uses: ad-m/github-push-action@master
with:
github_token: ${{ secrets.RELEASE_PAT }}
branch: main
- name: Rebase on latest main and push commit and tag
working-directory: ${{ github.workspace }}
run: |
VERSION=$(node -p "require('./js/package.json').version")
git fetch origin main
git rebase origin/main
git tag -f "v${VERSION}"
Comment thread
Thejus-Paul marked this conversation as resolved.
git push --atomic origin HEAD:main "+refs/tags/v${VERSION}"
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The + prefix in +refs/tags/v${VERSION} forces the tag push to the remote. Force-pushing tags is generally risky because it mutates existing releases, which can break downstream consumers and package registries that depend on immutable release tags.

Click to see review metadata
{
  "confidence": 0.95,
  "severity": "major",
  "suggested_fix": "Remove the `+` prefix (i.e., use `refs/tags/v${VERSION}`) to push the tag safely. The push will then rightfully fail if the tag already exists remotely.",
  "verification_questions": [
    "Do downstream consumers or automated systems rely on these release tags being strictly immutable?",
    "Is there a valid operational reason to force-push over existing release tags in this pipeline?"
  ]
}


- name: Publish the package on NPM
run: |
Expand Down