Win*_* Li 16 github github-api
我想使用 Github API 查找由特定拉取请求触发的工作流程运行,但此信息不包含在GET /repos/{owner}/{repo}/pulls/{pull_number}.
我还尝试通过搜索工作流运行列表来关联工作流运行和 pr,但对于由分叉 pr 触发的工作流运行,响应具有GET /repos/{owner}/{repo}/actions/runs/{run_id}空的“pull_requests”属性。
我想知道是否有人知道如何将拉取请求与相应的工作流程运行相关联?谢谢!
一种可能的解决方案是迭代中的每个对象workflow_runs并将其workflow_runs.head_sha与拉取请求进行比较head.sha。
JavaScript 中的解决方案可能如下所示:
const getWorkflowRunsForPullRequest = async pullNumber => {
const pullResponse = await fetch(`https://api.github.com/repos/{owner}/{repo}/pulls/${pullNumber}`)
const workflowsResponse = await fetch('https://api.github.com/repos/{owner}/{repo}/actions/runs?event=pull_request')
const pull = await pullResponse.json()
const workflows = await workflowsResponse.json()
return workflows.workflow_runs.filter(workflow => {
return workflow.head_sha === pull.head.sha
})
}
Run Code Online (Sandbox Code Playgroud)
请注意,此解决方案不考虑工作流 API 响应的分页,您还需要包含分页逻辑,并且可能包含更多查询参数以进一步过滤响应集。您还可以通过与Promise.all.
| 归档时间: |
|
| 查看次数: |
2288 次 |
| 最近记录: |