如何解决在Github操作推送事件中获取原始分支名称以掌握
我试图设置一个Github动作推送事件来掌握(因此,合并)。问题是对于我想做的事情,我需要原始拉取请求分支的名称。 Github的 pull request 事件通过调用${{ github.head_ref }}
使此操作变得容易,但是 push 事件中不存在此选项。我原本以为${{ github.head }}
会给我我想要的东西,但实际上它只是给我refs/heads/master
,而不是原始PR分支的名称。
换句话说,假设我使用名为foo
的分支打开了master分支的PR。在推送事件中,我希望能够获得foo
来完成我的工作。
这可能吗?
解决方法
如果只想获取触发管道的分支,则可以从环境GITHUB_REF
中获取它,该环境也可以作为$ {{github.ref}}访问。如果您要触发标签,则GITHUB_REF将没有正确的分支名称,因此您需要遵循How to get a branch name on GitHub action when push on a tag?
我发现我的用例使用拉取请求事件而非推入事件可以接受的解决方法:
on:
pull_request:
types: [closed]
branches:
- master
以上内容说,由于合并的PR自动关闭,因此只能在对已关闭的master分支的拉取请求上运行。但是为了使此操作仅在已合并的已关闭PR上运行,而不仅仅是在任何已关闭的PR上运行,在作业的相关步骤中,我添加了条件检查以确保已关闭的PR也已被合并:
if: github.event.pull_request.merged == true
然后我可以访问问题中提到的分支名称:${{ github.head_ref }}
对于第一个问题,如何在 master 上的 push 操作中获取源分支名称? Github action 到目前为止还没有提供方法。我创建了一个操作来帮助实现它,但需要一些先决条件。
- 此操作需要在主分支或任何(或任何合并目标分支)上运行
- 需要从 Github Merge 按钮合并源分支,并且不能更改自动消息。
- 如果分支没有通过 Github Merge 按钮合并,则需要在提交消息中指定分支名称,例如 xxx xxx/branch-name xxx
然后你可以得到源名称。 示例
sb = Snackbar(text='Elemento copiato negli appunti!')
sb.ids.text_bar.text_color = get_color_from_hex('181818')
sb.show()
在此处查看更多详细信息:https://github.com/tonynguyenit18/github-action-custom-vars
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。