如何在GitHub Action发布Release时更新名称并获取release_id
解决GitHub Action更新Release名称的问题
直接用上下文变量获取Release ID
在release: published触发的工作流里,GitHub已经把当前Release的完整数据挂载到context.payload.release中,直接用context.payload.release.id就能拿到所需的release_id,无需额外调用API。
修改后的配置代码如下:
name: update release name on: release: types: [published] jobs: update-release-name: runs-on: ubuntu-latest steps: - uses: actions/github-script@v6 with: script: | github.rest.repos.updateRelease({ owner: context.repo.owner, repo: context.repo.repo, release_id: context.payload.release.id, name: 'Some New Name' })
关于getReleaseByTag的补充说明
如果因特殊场景必须通过tag获取Release ID,getReleaseByTag是可行的——因为published事件是在Release正式发布完成后才触发的,此时tag对应的Release已存在,调用该接口能正常返回数据。示例代码如下:
const release = await github.rest.repos.getReleaseByTag({ owner: context.repo.owner, repo: context.repo.repo, tag: context.payload.release.tag_name }); github.rest.repos.updateRelease({ owner: context.repo.owner, repo: context.repo.repo, release_id: release.data.id, name: 'Some New Name' });
内容的提问来源于stack exchange,提问作者Andrew
相关产品推荐
相关产品推荐

