github - 从分叉存储库中发布来自 GitHub 操作的评论的解决方法
问题描述
我需要在 GitHub 操作完成后向 GitHub 拉取请求发布评论,例如当 FOSS 社区成员提交 PR 时。我知道当一个操作从一个分叉的仓库运行时,令牌对父仓库没有写权限,所以它不能发表评论。
人们为此找到了任何可行的解决方法吗?
解决方案
我找不到任何现成的操作,所以这里有一个完整的代码来解决 GitHub Actions 的限制,用 bash + jq + curl 编写,并直接调用 GitHub API。
- 拉取请求操作 会创建一个
.md
包含 Github 降价评论内容的文件,并将其保存为某个名称下的工件。此操作在分叉存储库的上下文中运行,因此无法发布 PR 评论。 - 常规cron 作业会查看所有打开的拉取请求和最近完成的操作运行,查找已发布的工件,并将其内容作为评论复制到相应的拉取请求,更新重复运行的现有评论。
cron 的工作深入步骤是:
- 获取所有打开的拉取请求
- 获取所有最近的工作流程运行
- 将拉取请求及其当前 SHA 与为同一 SHA 运行的最后一个工作流匹配
<pull-request-number>
对于和 的每个找到的匹配项<workflow-run-id>
:- 从工作流运行下载工件——需要一个带有降价内容的文件
- 查看现有的 PR 评论,看看我们之前是否发表过评论(使用隐藏的神奇标题来识别我们的评论)
- 使用新文本创建或更新评论(如果更改)
推荐阅读
- python - 如何在python中使用模拟json数据库文件
- python - 似乎无法从下拉菜单中选择 - Python Selenium
- ruby-on-rails - 如何在 ruby 代码中使用 Stripe 令牌通过 Stripe::Account.create() 创建帐户?
- javascript - 反应原生应用程序卡在白屏上,没有任何错误
- swiftui - SwiftUI 多个标签垂直对齐
- r - 使用 map 函数从列表中进行子集试验
- arrays - 从右到左的关联性与指针
- jruby - OpenJFX TreeTableView 渲染问题
- jenkins - 由于不满足的依赖关系,某些插件无法加载。修复这些问题并重启 Jenkins
- javascript - ajax post var event.data