使用 Jenkins 获取 Github 拉取请求的倍数检查

Getting Multiples checks for Github Pull Request using Jenkins

我正在开发一个使用 jenkins 的项目 ci。我必须验证 Github PR 并更新多项检查。我正在使用 Github Pull Request Builder 插件。 1.linting代码 2. 运行 单元测试 3. 代码覆盖率

我想 github 以不同方式显示 3 个状态检查?尽管 3 个构建向 github 报告状态,github 只显示“1 个未决检查”或“1 个状态检查已成功完成”。

我无法为此功能开发或编写脚本,因此找不到合适的解决方案。有没有什么插件或者方法可以实现这个。

我希望只使用一个 Jenkins 作业就可以做到这一点

我尝试编写 shell 脚本来更新 github 中的检查 其响应成功消息,但 PR 未更新状态。

curl -XPOST -H "Authorization: token XXXXXXXXXXXXXXXXXXXXXXXXXXXX" https://api.github.com/repos/org/reponame/statuses/$(git rev-parse HEAD) -d '{
    "state": "success",
    "target_url": "${BUILD_URL}",
    "description": "All tests were passed!",
    "context": "jenkins-ci-unit-test"
  }'

回应

% Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
05:15:26                                  Dload  Upload   Total   Spent    Left  Speed
05:15:26 
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
100  1528  100  1350  100   178   8318   1096 --:--:-- --:--:-- --:--:--  8333
05:15:26 {
05:15:26   "url": "https://api.github.com/repos/org/reponame/statuses/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
05:15:26   "id": 333333333,
05:15:26   "state": "success",
05:15:26   "description": "All tests were passed!",
05:15:26   "target_url": "http://xxx.xxxxx.com/job/job1",
05:15:26   "context": "jenkins-ci-unit-test",
05:15:26   "created_at": "2016-11-29T10:15:26Z",
05:15:26   "updated_at": "2016-11-29T10:15:26Z",
05:15:26   "creator": {
05:15:26    .......
05:15:26   }
05:15:26 }

尝试使用

git rev-list --max-count=2 HEAD | tail -n 1  

而不是

git rev-parse HEAD

所以它采用之前的提交值

您用于更新检查的提交哈希是错误的。它应该是 PR 的最后一次当前提交。您需要通过调用以下 github API 端点来获取正确的提交哈希 https://api.github.com/repos/orgname/reponame/pulls/prno