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

问题描述 投票:0回答:2

我得到了这个工作流程:

name: Build and Release

on:
  push:
    tags:
      - "v*.*.*"

permissions:
  contents: write

jobs:
  build:
    runs-on: ubuntu-latest

    steps:
      - name: Checkout code
        uses: actions/checkout@v2

      - name: Install PHP
        uses: shivammathur/setup-php@v2
        with:
          php-version: '8.2'
          extensions: mbstring, zip

      - name: Install PHP dependencies
        run: composer install --no-interaction --prefer-dist

      - name: Use Node.js 16.13.0
        uses: actions/setup-node@v2
        with:
          node-version: 16.13.0

      - name: Install required npm version
        run: npm -g install [email protected]

      - name: Install npm dependencies
        run: npm ci

      - name: Build assets
        run: npm run build

      - name: Create release zip
        run: zip -r release.zip .
        if: success()

      - name: Upload release.zip to GitHub Releases
        uses: softprops/action-gh-release@v1
        with:
          files: release.zip
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

失败了

👩u200d🏭 正在为标签 v.0.5.0 创建新的 GitHub 版本... ⚠️ GitHub 发布失败,状态:403 不明确的 正在重试...(还剩 2 次重试)

我检查了https://github.com/softprops/action-gh-release/issues/236,是什么让我在我的工作流程中添加

permissions
,但错误仍然存在。

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

github continuous-integration github-actions continuous-deployment
2个回答
4
投票

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

特别是当 softprops/action-gh-release@v1 正在运行时 这个缩小版的 js,您的错误似乎来自 here,包装 此包此版本,带有 不适当的存储库标记链接到正在使用的 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)"

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


0
投票

我使用“gh release”命令遇到了同样的问题,真正的问题是关于权限的,要解决它,你必须在你的作业名称下添加作业的权限,例如:

...
jobs:
  build:
    permissions: write-all # this is the FIX
    runs-on: ubuntu-latest

    steps:
      - name: Checkout code
        uses: actions/checkout@v2
...
© www.soinside.com 2019 - 2024. All rights reserved.