我正在使用 Jenkins Pipeline 插件在我的 GitHub 存储库上构建提交。但是,虽然我确实足够信任 GitHub 上的人员,可以对存储库进行提交,但服务器是跨多个项目的共享基础架构,我不想让他们有效地获得从属服务器的 root 访问权限。
我发现该插件会阻止来自 Pull 请求的 Jenkinsfile 更改。是否可以为全部Jenkinsfile 有变化吗?
请注意,其中一些是 GitHub 组织的所有者,因此修复必须在 Jenkins 上进行,而不是在 GitHub 上进行。
答案1
如果您不信任这些人,不允许他们更改 Jenkinsfile 就足够了吗?
为了进行正确的测试,jenkins 服务器在某些时候必须运行你的代码,所以如果他们可以将更改推送到他们知道将在你的 Jenkins 机器上执行的某个文件,他们可以随意更改它并让它运行你试图阻止他们在 Jenkinsfile 中运行的任何内容。
取消他们的 github 所有者身份甚至不能解决这个问题,他们可以发出一个包含错误代码的拉取请求,然后你的 jenkins 机器将合并并运行该请求。
此外,您的 Jenkins 不应该以 root 身份运行,而应该让没有 sudo 权限的 jenkinsuser 运行测试。