【问题标题】:Jenkins set github commit status not working詹金斯设置 github 提交状态不起作用
【发布时间】:2026-01-22 09:55:02
【问题描述】:

我看到该命令在日志中被调用,但在 GitHub 中它不显示状态。

[Set GitHub commit status (universal)] PENDING on repos [] (sha:47ccf20) with context:api

webhook-url 工作正常,并通知 Jenkins 何时构建。

我还设置了 GitHub 服务器,并且测试连接正常。

关于我在设置中可能遗漏的任何想法?

我遵循了这个问题中的步骤,但仍然没有在 github 中显示任何内容:Show current state of Jenkins build on GitHub repo

【问题讨论】:

    标签: git jenkins


    【解决方案1】:

    如果您按照您分享的链接中的步骤进行操作,您可能在第 9 步(设置 Github 提交状态)之后错过了一个关键步骤,即选择 状态结果选项在What部分如下图:

    这将允许您为每个构建发送默认状态消息(错误、失败、成功、挂起)。选择第一个选项将需要您手动定义要发回的状态(默认情况下为无,这可能会解释为什么您没有收到任何内容)。

    还要确保验证您在 Github 上的 Webhook 部分中的有效负载 url 是否已使用您生成的令牌正确配置。不管怎样,我认为你已经做得很好了。

    您可以选择让我选择单个事件,以更好地控制 Jenkins 可以发送的内容,但请务必确保选中 repo:status 选项。希望对您有所帮助。

    【讨论】:

    • "确保 repo:status 选项被勾选"
    【解决方案2】:

    为了调试,使用下面的 CLI 命令检查你的访问令牌是否能够在 GitHub 中为任何 dummy_test PR 设置状态。

    curl "https://api.github.com/repos/[organization name]/[repo name]/statuses/[commit id]?access_token=[GitHub access token]" -H "Content-Type: application/json"   -X POST -d "{\"state\": \"success\", \"description\": \"Build Successful \", \"target_url\": \"[jenkins job url]\", \"context\": \"[Job name]\" }"
    

    PS:去掉方括号

    【讨论】:

      【解决方案3】:

      即使按照 OP 链接中的所有答案,它也对我不起作用。

      问题在于我生成的个人访问令牌的范围。它需要Full control of private repositories 访问权限,而不仅仅是repo:status

      【讨论】: