如何不使用PAT仅借助GITHUB_TOKEN在GitHub Actions中创建Git提交
GitHub Action 仅用GITHUB_TOKEN实现代码提交+打标签解决方案
核心解决逻辑
你遇到的身份错误仅需提前配置Git提交者身份即可解决,全程无需PAT,只需要用到内置的secrets.GITHUB_TOKEN。
完整配置步骤
- 第一步:在Workflow根级别配置写入权限,确保GITHUB_TOKEN拥有代码和标签的操作权限
# 放在workflow文件的最上层,和on、jobs同级 permissions: contents: write
- 第二步:在执行
git commit前,先配置Git提交者身份,使用GitHub官方的Actions Bot身份即可
- name: 配置Git提交身份 run: | git config --global user.name "github-actions[bot]" git config --global user.email "github-actions[bot]@users.noreply.github.com"
- 第三步:执行你的代码变更、提交、推送逻辑
- name: 提交变更并推送 run: | git add . git commit -a -m "Update new version ${NEW_VERSION}" git push
- 第四步:保留你原有的打标签逻辑即可,也可以直接用Git命令打标签推送,两种方式都不需要PAT
# 方式1:保留你原有github-script的打标签逻辑 - name: Create a tag with new version uses: actions/github-script@v3 with: github-token: ${{ secrets.GITHUB_TOKEN }} script: | github.git.createRef({ owner: context.repo.owner, repo: context.repo.repo, ref: "refs/tags/${{ env.NEW_VERSION }}", sha: context.sha })
# 方式2:直接用Git命令打标签推送,更简洁 - name: 打标签并推送 run: | git tag ${{ env.NEW_VERSION }} git push origin ${{ env.NEW_VERSION }}
注意事项
- 如果你使用的actions/checkout版本低于v3,需要在checkout步骤添加
persist-credentials: true配置(默认就是true,一般不需要额外修改) - 不要修改Workflow的默认GITHUB_TOKEN作用域,上述配置已经覆盖所有需要的权限
内容的提问来源于stack exchange,提问作者Einz
相关产品推荐
相关产品推荐

