使用 GitHub 操作创建版本失败并显示 HTTP 403

SPQ*_*Inc 6 continuous-integration github continuous-deployment github-actions

我得到了这个工作流程:

\n
name: Build and Release\n\non:\n  push:\n    tags:\n      - "v*.*.*"\n\npermissions:\n  contents: write\n\njobs:\n  build:\n    runs-on: ubuntu-latest\n\n    steps:\n      - name: Checkout code\n        uses: actions/checkout@v2\n\n      - name: Install PHP\n        uses: shivammathur/setup-php@v2\n        with:\n          php-version: \'8.2\'\n          extensions: mbstring, zip\n\n      - name: Install PHP dependencies\n        run: composer install --no-interaction --prefer-dist\n\n      - name: Use Node.js 16.13.0\n        uses: actions/setup-node@v2\n        with:\n          node-version: 16.13.0\n\n      - name: Install required npm version\n        run: npm -g install npm@8.5.5\n\n      - name: Install npm dependencies\n        run: npm ci\n\n      - name: Build assets\n        run: npm run build\n\n      - name: Create release zip\n        run: zip -r release.zip .\n        if: success()\n\n      - name: Upload release.zip to GitHub Releases\n        uses: softprops/action-gh-release@v1\n        with:\n          files: release.zip\n        env:\n          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}\n
Run Code Online (Sandbox Code Playgroud)\n

这失败了

\n
\n

\xe2\x80\x8d 为标签 v.0.5.0 创建新的 GitHub 版本...\n\xe2\x9a\xa0\xef\xb8\x8f GitHub 版本失败,状态:403\nundefined\n重试... (2剩余重试次数)

\n
\n

我检查了https://github.com/softprops/action-gh-release/issues/236,什么让我在我的工作流程中添加了permissions,但错误仍然存​​在。

\n

我的问题是:我错过了什么?应该允许该操作来创建该版本?

\n

Ske*_*nvy 7

如果目标是自动创建版本,那么使用gh release create命令会比调试一些随机操作要容易得多。

特别是当softprops/action-gh-release@v1运行这个缩小的 js时,您的错误似乎来自这里,包装此版本没有足够的存储库标记来链接到 octokit 包的显式版本,即使用,调试发布失败的原因。

您可以通过以下方式实现同​​样的目标:

    - name: Release
      env:
        GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
      run: >-
        gh release create ${{ github.ref_name }}
        "release.zip#Whatever you want to call this artifact"
        --generate-notes
        --title "Version ${{ github.ref_name }} (or some other name)"
Run Code Online (Sandbox Code Playgroud)

这不是关于softprops/action-gh-release@v1的规范答案,但它是使用 github cli 编写版本脚本的GitHub 式方式。

编辑添加: permissions

虽然最初的问题已经尝试指定权限,但无论权限如何仍然存在问题,以向其他发帖者澄清;gh release create需要contents获得许可write。您可以指定整个工作流程或仅指定作业;

permissions:
  contents: write
Run Code Online (Sandbox Code Playgroud)

但请注意,仅指定一项权限会将未指定的权限设置为none,因此,如果您正在执行需要其他权限的其他操作,则还必须指定这些权限。