从分叉存储库中发布来自 GitHub 操作的评论的解决方法

Posted

技术标签:

【中文标题】从分叉存储库中发布来自 GitHub 操作的评论的解决方法【英文标题】:Workaround to post comments from GitHub actions from forked repos 【发布时间】:2020-08-08 16:28:43 【问题描述】:

我需要在 GitHub 操作完成后将 cmets 发布到 GitHub 拉取请求,例如当 FOSS 社区成员提交 PR 时。我知道当一个操作从一个分叉的仓库运行时,令牌对父仓库没有写权限,所以它不能发表评论。

人们为此找到了任何可行的解决方法吗?

【问题讨论】:

【参考方案1】:

我找不到任何现成的action,所以这里有一个complete code来解决GitHub Actions的限制,用bash + jq + curl编写,直接调用GitHub API。

Pull request action 创建一个带有 Github markdown 评论内容的 .md 文件,并以某个名称将其保存为工件。此操作在分叉存储库的上下文中运行,因此无法发布 PR 评论。 普通的cron job 查看所有打开的拉取请求和最近完成的操作运行,查找已发布的工件,并将其内容作为 cmets 复制到相应的拉取请求,更新重复运行的现有评论。

cron 的工作深入步骤是:

获取所有打开的拉取请求 获取所有最近的工作流运行 将拉取请求及其当前 SHA 与为同一 SHA 运行的最后一个工作流匹配 对于每个找到的 <pull-request-number><workflow-run-id> 匹配: 从工作流运行下载工件 - 需要一个包含降价内容的文件 查看现有的 PR cmets,看看我们之前是否发表过评论 (使用隐藏的神奇标题来识别我们的评论) 使用新文本创建或更新评论(如果已更改)

【讨论】:

以上是关于从分叉存储库中发布来自 GitHub 操作的评论的解决方法的主要内容,如果未能解决你的问题,请参考以下文章

将原始 GitHub 存储库中的新更新拉入分叉的 GitHub 存储库

无法从GitHub分叉存储库签出分支

如何将屏幕截图添加到 github 存储库中的 README?

如何将屏幕截图添加到 github 存储库中的 README?

无法使用 npm 从分叉的 github 存储库安装

我可以使分叉的 github 存储库从原始版本中保持最新吗? [复制]