jenkins - 使用 GitHub 配置 Jenkins(授权)
问题描述
我想建立一个 Jenkins 来为一组从事不同项目的人构建 GitHub 项目,以使项目在 Jenkins 中的可见性遵循 GitHub 中的授权。
我之前(成功地)使用 GitHub Auth Plugin 和 Committer Strategy 完成了此操作,但未能重现配置。
到目前为止我达到了什么:
- 我在 docker 中运行 jenkins/jenkins:jdk11。
- 我成功配置了 GitHub 身份验证,即用户通过 OAuth 进行身份验证(当前范围为“repo、read:org、read:user”),因此他们的 github 名称显示为用户名。
加了一些github项目,上次的“GitHub Committer Strategy”帮我配置了可见性,但是现在遇到了一个不太明白的问题。
如果我将 GitHub 提交者策略的配置留空(管理员用户除外),经过身份验证的用户将看不到任何内容。有一条消息“访问被拒绝,XXX 缺少整体/读取权限”(翻译)。
当我检查“使用 GitHub 存储库权限”时,我仍然会收到此错误。当我添加“向所有经过身份验证的用户授予读取权限”时,用户可以看到彼此的项目。
我什至不明白它应该如何工作。如何配置插件,以便每个经过身份验证的用户都能了解他的所有项目?
我正在使用 Jenkins 2.223 和 GitHub Authentiction Plugin 0.33。
解决方案
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/
推荐阅读
- ios - What is the benefit to make starting point Struct and not Class in SwiftUI?
- javascript - Why am I able to assign a value to a read only property?
- python - UniqueConstraint in django 2.2 don't raise ValidationError
- c# - C#捕获桌面视频并通过网络发送
- javascript - 使用 npm 安装时出现 Fontawesome 许可证抛出错误
- performance - 使用服务器的内部 IP 配置 Database Controler
- swift - 我正在下载音频文件并将其保存在目录中,但无法播放。(OSStatus 错误 2003334207。)
- android - Why Doesn't Work "setOngoing" or "setAutoCancel" in startForeground?
- vba - 如何在 VBA 中列出我可用的网络驱动器(由于使用 Sharepoint)?
- bash - 在 bash 上设置一个带有当前日期的变量,包括选项卡