gpt4 book ai didi

github - 如何让 Jenkins 通过 Composer 检查私有(private)供应商 repo

转载 作者:行者123 更新时间:2023-12-02 14:21:58 26 4
gpt4 key购买 nike

我有一个想要与 Jenkins 一起构建的项目。
该项目托管在私有(private) GitHub 存储库中,我已将 SSH 公钥放在我的用户“部署”的 GitHub 中。

由于构建配置中的 Jenkins git 插件部分中的部署凭据,该项目得到了很好的检查。
但是在同一 GitHub 组织中作为私有(private)托管的供应商库是通过构建步骤命令加载的:

php composer.phar install -o --prefer-dist --no-dev

我已经安装了 Jenkins git 插件,以便通过私有(private) SSH key 从 GitHub checkout 主仓库。
但是当 Composer 试图检查我得到的子项目时
Failed to clone the git@github.com:Organisation/Repo.git repository, try running in interactive mode so that you can enter your GitHub credentials

我试图让 composer 命令以不同的用户身份运行,但没有成功,例如:
su - deploy -c 'php composer.phar install -o --prefer-dist --no-dev'

反正看起来很奇怪。我想弄清楚让 Composer 完成工作的正确方法。想法 ?

最佳答案

Jenkins 实际上是以“jenkins”用户身份运行 shell 命令的。
这意味着“jenkins”需要访问 GitHub。
然后所有 git@github.com:Organisation/Repo.git无需其他凭据即可工作。

这里解释了如何通过 SSH 授予 Jenkins 对 GitHub 的访问权限

# Login as the jenkins user and specify shell explicity,
# since the default shell is /bin/false for most
# jenkins installations.
sudo su jenkins -s /bin/bash

ssh-keygen -t rsa -C "your_email@example.com"
# Copy ~/.ssh/id_rsa.pub into your Github

# Allow adding the SSH host key to your known_hosts
ssh -T git@github.com

# Exit from su
exit

灵感来自: Managing SSH keys within Jenkins for Git

关于github - 如何让 Jenkins 通过 Composer 检查私有(private)供应商 repo ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28351568/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com