github-actions - GitHub Actions 能否从私有仓库创建发布到公共仓库?
问题描述
我想创建一个包含供用户下载的资产的版本。由于它是一个私人仓库,我想在一个单独的公共仓库中创建发布。这在 GitHub Actions 中可行吗?
create-release操作中有owner
和repo
参数,但在将它们设置为不同的存储库后,我一直收到错误:
- name: Create Release
id: create_release
uses: actions/create-release@v1
env:
GITHUB_TOKEN: ${{ secrets.PAT }} # A personal access token
with:
tag_name: ${{ github.ref }}
release_name: Release ${{ github.ref }}
draft: false
prerelease: false
owner: foo
repo: another_public_repo
错误:验证失败:{"resource":"Release","code":"custom","field":"tag_name","message":"tag_name is not a valid tag"}, {"resource":" Release","code":"custom","message":"发布的版本必须有一个有效的标签"}, {"resource":"Release","code":"invalid","field":"target_commitish" }
解决方案
您要么必须在tag_name
. 在您的情况下,这意味着在创建发布之前在公共存储库中创建标签。或者您可以在 中指定一个分支或提交 SHA commitish
,如果 中指定的标签tag_name
不存在,则使用它。
- name: Checkout public repository
uses: actions/checkout@v2
with:
repository: foo/another_public_repo
path: another_public_repo
- name: Get tag name from ref
shell: bash
run: echo "::set-output name=tag::${GITHUB_REF#refs/tags/}"
id: get_tag
- name: Create tag in public repository
run: |
cd ${{github.workspace}}/another_public_repo
git tag ${{ steps.get_tag.outputs.tag }}
git push --tags --porcelain
- name: Create Release
id: create_release
uses: actions/create-release@v1
env:
GITHUB_TOKEN: ${{ secrets.PAT }} # A personal access token
with:
tag_name: ${{ steps.get_tag.outputs.tag }}
release_name: Release ${{ steps.get_tag.outputs.tag }}
draft: false
prerelease: false
owner: foo
repo: another_public_repo
推荐阅读
- stored-procedures - 转换 varchar 值数据类型 int 时如何修复转换失败
- javascript - React Native Windows SHIFT + F10 开发者工具已停止工作
- ios - 我们如何使用 Moya 调试/查看通过 API 设置的请求?
- ansible - 使用 Ansibles uri 模块从非平凡的 JSON 解析值
- typescript - 在构造函数中调用方法(返回承诺)是否有效
- javascript - 如何在 CORS-Anywhere 中禁用缓存?
- npm - 输入“npm start”时出现错误,如何解决?
- spring - 多个数据源的 Hikaricp 配置
- angular - 页脚位于页面末尾,不固定
- apache-spark-sql - 查询同一张表时,spark sql 返回空值,但配置单元和 impaly 获取正常数据?