首页 > 解决方案 > 使用 GitHub 配置 Jenkins(授权)

问题描述

我想建立一个 Jenkins 来为一组从事不同项目的人构建 GitHub 项目,以使项目在 Jenkins 中的可见性遵循 GitHub 中的授权。

我之前(成功地)使用 GitHub Auth Plugin 和 Committer Strategy 完成了此操作,但未能重现配置。

到目前为止我达到了什么:

  1. 我在 docker 中运行 jenkins/jenkins:jdk11。
  2. 我成功配置了 GitHub 身份验证,即用户通过 OAuth 进行身份验证(当前范围为“repo、read:org、read:user”),因此他们的 github 名称显示为用户名。

加了一些github项目,上次的“GitHub Committer Strategy”帮我配置了可见性,但是现在遇到了一个不太明白的问题。

如果我将 GitHub 提交者策略的配置留空(管理员用户除外),经过身份验证的用户将看不到任何内容。有一条消息“访问被拒绝,XXX 缺少整体/读取权限”(翻译)。

GitHub Committer 策略的选项

将选项留空时,每个经过身份验证的用户都会出错

当我检查“使用 GitHub 存储库权限”时,我仍然会收到此错误。当我添加“向所有经过身份验证的用户授予读取权限”时,用户可以看到彼此的项目。

我什至不明白它应该如何工作。如何配置插件,以便每个经过身份验证的用户都能了解他的所有项目?

我正在使用 Jenkins 2.223 和 GitHub Authentiction Plugin 0.33。

标签: jenkinsgithuboauth

解决方案


Github Authentication Plugin 为什么:使用 GitHub 用户凭证来管理 Jenkins 实例,使用 GitHub-OAuth。

插件详情: https ://plugins.jenkins.io/github-oauth

配置(Github): Step1:Github.com → Settings → Applications → Authorized OAuth Apps → Create a new Application。

在此处输入图像描述

  • 应用名称:詹金斯
  • HomePageURL:你的 Jenkins 登陆页面 URL,对我来说是https://jenkis ..ninja
  • 应用说明:随心所欲
  • 授权回调:JenkinsInatnceURL/securityRealm/finishLogin 请确保您的拼写正确

添加您的应用程序

在此处输入图像描述

第 2 步:配置(詹金斯)

在此处输入图像描述

  • 启用安全复选框
  • 访问控制复选框
  • Github 身份验证插件
  • Github Web URI:https ://github.com或您自己的 Github 服务器实例
  • Client Id:你将从 Github 获得哪个
  • 客户端密钥:将 Jenkins 添加为应用程序时,您将从 GitHub 获得的密钥
  • OAuth 范围:read:org,user:email,repo

然后授权:*基于矩阵的安全性:复选框选中作为签入截图

有关更多详细信息,请阅读https://plugins.jenkins.io/github-oauth/


推荐阅读