GitHub webhooks - 如何检测合并事实?
GitHub webhooks - how to detect fact of merge?
我正在开发一个应用程序,它可以检测到特定分支中合并了某些内容并据此采取一些措施。
为了解决我的问题,我需要找到合并到我监控的分支的分支的名称。
假设 GitHub 向我发送 "everything",当 "some-branch" 合并到分支 "Tests" 时,我的脚本必须做出反应。此外,我的脚本必须能够检测合并分支的名称(在本例中 "some-branch")。
到目前为止我找到的唯一解决方案 - 是读取数组 "commits" 中每个提交的 属性 "message" 并解析它。它们非常典型:"Merge branch 'some-branch' into Tests".
有两个问题
- 消息理论上可以由用户修改(例如 SourceTree 在冲突解决后向您显示编辑器)
- 在快进的情况下没有消息
你有什么建议,我怎样才能更好地检测合并事实和合并分支的名称?
谢谢!
恐怕由于 git 的协议,这并不总是可行的。
在快进情况下,不会创建新的 blob,但只有 blob 会传输到 github。
如果存在合并提交,正如您已经意识到的那样,提交消息可能会被用户覆盖。
我想我们能做的最好的事情就是监控一个分支,并考虑 push 而不是 merge.
只有在 github 上通过 pull request 进行分支合并,您才能检测到事件或关联事物,例如 pull_request_review 事件。
查看合并到Tests
分支的命令是git branch --merged Tests
。
我正在开发一个应用程序,它可以检测到特定分支中合并了某些内容并据此采取一些措施。 为了解决我的问题,我需要找到合并到我监控的分支的分支的名称。
假设 GitHub 向我发送 "everything",当 "some-branch" 合并到分支 "Tests" 时,我的脚本必须做出反应。此外,我的脚本必须能够检测合并分支的名称(在本例中 "some-branch")。
到目前为止我找到的唯一解决方案 - 是读取数组 "commits" 中每个提交的 属性 "message" 并解析它。它们非常典型:"Merge branch 'some-branch' into Tests".
有两个问题
- 消息理论上可以由用户修改(例如 SourceTree 在冲突解决后向您显示编辑器)
- 在快进的情况下没有消息
你有什么建议,我怎样才能更好地检测合并事实和合并分支的名称?
谢谢!
恐怕由于 git 的协议,这并不总是可行的。
在快进情况下,不会创建新的 blob,但只有 blob 会传输到 github。
如果存在合并提交,正如您已经意识到的那样,提交消息可能会被用户覆盖。
我想我们能做的最好的事情就是监控一个分支,并考虑 push 而不是 merge.
只有在 github 上通过 pull request 进行分支合并,您才能检测到事件或关联事物,例如 pull_request_review 事件。
查看合并到Tests
分支的命令是git branch --merged Tests
。