Use GITHUB_TOKEN with contents:write in release workflow (#289) Grant job-level contents:write permission so GitHub's ephemeral GITHUB_TOKEN can tag and publish releases directly without an expiring RELEASE_PAT secret. Pin actions/checkout to a commit SHA and replace the unpinned third-party zip/release actions and deprecated ::set-output script with standard zip and gh release create.
diff --git a/.github/scripts/set_release_version.py b/.github/scripts/set_release_version.py deleted file mode 100644 index 92c95dd..0000000 --- a/.github/scripts/set_release_version.py +++ /dev/null
@@ -1,7 +0,0 @@ -# Obtains a date-based version for the release workflow. - -import datetime - -now_utc = datetime.datetime.now(datetime.timezone.utc) -version = now_utc.strftime("%Y.%m%d.%H%M%S") -print("::set-output name=version::v{}".format(version))
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 24a157d..96c2128 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml
@@ -1,33 +1,28 @@ ---- name: Release on: push: branches: - 'master' +permissions: + contents: read + jobs: release: runs-on: ubuntu-latest + permissions: + contents: write steps: - - uses: actions/checkout@master - - uses: actions/setup-python@master + - uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6.1.0 with: - python-version: '3.x' - - name: Set Release Version - id: set_release_version - run: python ./.github/scripts/set_release_version.py - - name: Create Archive Release - uses: thedoctor0/zip-release@master - with: - filename: 'emboss.zip' - exclusions: '*.git*' - - name: Automatic Release Upload - id: automatic_release - uses: 'marvinpinto/action-automatic-releases@latest' - with: - repo_token: '${{ secrets.RELEASE_PAT }}' - automatic_release_tag: ${{ steps.set_release_version.outputs.version }} - prerelease: false - title: ${{ steps.set_release_version.outputs.version }} - files: | - emboss.zip + persist-credentials: false + - name: Create and upload release + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: | + version="v$(date -u +%Y.%m%d.%H%M%S)" + zip -r emboss.zip . -x '*.git*' + gh release create "${version}" emboss.zip \ + --target "${GITHUB_SHA}" \ + --title "${version}" \ + --generate-notes