如何在Github Action中调用gh CLI生成与Web端一致的自动发布说明
解决方案
方案1:直接使用gh CLI内置自动生成参数(推荐)
gh CLI从2.21.0版本开始内置了和Web端完全一致的自动生成发布说明功能,直接追加--generate-notes参数即可,无需额外调用接口,修改后的代码如下:
# create a new release, and attach "*.zip" as extra artifacts. - name: Create Github release with zip attached run: gh release create ${{ steps.date.outputs.date }} *.zip --target develop --generate-notes env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
目前Github官方托管的运行器默认预装的gh CLI版本都满足要求,无需额外安装依赖。
方案2:预先生成发布说明再自定义传入
如果需要在生成后对发布说明做二次修改(比如增加自定义前缀、筛选提交内容),可以先调用Github原生接口生成说明,存储为输出变量后再传入创建命令,操作步骤如下:
- 先为工作流开启写入权限,在工作流yaml的根节点添加配置:
permissions: contents: write
- 新增生成发布说明的步骤:
- name: Generate auto release notes id: gen_notes run: | NOTES=$(gh api repos/${{ github.repository }}/releases/generate-notes -f tag_name=${{ steps.date.outputs.date }} -f target_commitish=develop --jq .body) echo "notes=$NOTES" >> $GITHUB_OUTPUT env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- 创建发布时传入生成好的说明:
- name: Create Github release with zip attached run: gh release create ${{ steps.date.outputs.date }} *.zip --target develop -n "${{ steps.gen_notes.outputs.notes }}" env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
注意事项
- 两种方案底层均调用Github官方的发布说明生成接口,输出结果和Web端「Auto-Generate Release Notes」选项完全一致
- 如果使用私有仓库,不需要额外配置token权限,默认的
secrets.GITHUB_TOKEN就满足调用要求
内容的提问来源于stack exchange,提问作者FirstDivision
相关产品推荐
相关产品推荐

