当前位置: 首页 > 面试题库 >

验证Github私有存储库的Jenkins CI

阚允晨
2023-03-14
问题内容

我希望Jenkins从托管在Github上的私有存储库自动获取数据。但是我不知道如何完成该任务。尝试了文档,为jenkins用户生成了ssh-
key,我所看到的就是:“无法克隆存储库”。我已经检查过网址-它们是有效的。

任何线索,也许您知道一些描述此类内容的文档/博客/内容?


问题答案:

也许GitHub 对您正在寻找的部署密钥提供支持?引用该页面:

什么时候应该使用部署密钥?

很简单,当您的服务器需要对单个私有存储库的访问权限。该密钥直接附加到存储库,而不是个人用户帐户。

如果这是您已经尝试过的html" target="_blank">方法,但是它不起作用,则可能需要使用所用URL的更多详细信息,密钥文件的名称和位置等来更新您的问题。

现在是技术部分:如何在Jenkins中使用SSH密钥?

例如,如果您有一个jenkinsUnix用户,则可以将您的部署密钥存储在中~/.ssh/id_rsa。当詹金斯尝试通过ssh克隆存储库时,它将尝试使用该密钥。

在某些设置中,您无法将Jenkins作为自己的用户帐户运行,也可能无法使用默认的ssh密钥位置~/.ssh/id_rsa。在这种情况下,您可以在其他位置创建密钥,例如~/.ssh/deploy_key,并配置ssh为与以下项中的项一起使用~/.ssh/config

Host github-deploy-myproject
    HostName       github.com
    User           git
    IdentityFile   ~/.ssh/deploy_key
    IdentitiesOnly yes

因为所有您使用的所有Github存储库进行身份验证,git@github.com并且您不希望上述密钥用于所有与Github的连接,所以我们创建了一个主机别名
github-deploy-myproject 。您的克隆URL现在变为

git clone github-deploy-myproject:myuser/myproject

这也是您将 存储库URL 放入Jenkins的内容。

(请注意, 请勿ssh:// 放在前面,以使其正常工作。)



 类似资料:
  • 问题内容: 我正在尝试运行一个容器,该容器将公开私有GitHub存储库上的软件包中的golang服务。 由于我与GCE合作,因此我的入门图片是google / debian:wheezy。 安装所有必需的依赖项和工具后,我正在运行 包裹是私人仓库。 我添加了GitHub SSH密钥以允许从私有存储库克隆到docker文件: 尽管如此,当go尝试克隆存储库时,我在go get流程中遇到了一个错误:

  • 问题内容: 我似乎无法让我的Jenkins CI与Github合作。 我的clone命令失败,但这是由于密钥造成的,所以我以服务帐户身份登录(用户Jenkins以Windows Service身份运行)并运行了clone命令。一切都好在引擎盖上。 但是,当我想运行获取以获取最新信息时,它将无法完成。它只是坐在那里。我已经尝试过通过Jenkins的Git插件,也尝试通过Windows命令行脚本。都不

  • 问题内容: 我是github组织的所有者,可以访问所有存储库。其中一些是私人的,其他则是公共的。我正在尝试将Jenkins设置为在向组织的任何存储库发出拉取请求时触发构建。问题是我有一个外部系统,每当发出请求时,它就会通过github webhooks通知。我必须将Jenkins与此系统集成在一起。该系统还可以通过api请求触发到Jenkins的通知。(https://python- jenkin

  • 问题内容: 我正在尝试通过npm安装github私有存储库,其中包括其他私有github存储库作为依赖项。 尝试了很多方法和帖子,但是都没有用。这是我在做什么: 在package.json中就像: 正确的方法是什么? 问题答案: 以下在我需要的所有情况下都可以正常工作:

  • 我正在为我的项目使用Gradle,昨天我在构建项目时遇到了问题,因为https://plugins.gradle.org不起作用。那么有没有办法克隆依赖项

  • 问题内容: 我的Node.JS项目包含对托管在github上的私有NPM存储库的引用。在本地可以正常工作,但是我正在努力使其在Elastic Beanstalk上正常工作。 -- 我需要的是能够在我的Elastic Beanstalk实例上为git设置有效的SSH配置,而不必在源代码控制中存储秘密密钥等。 显然,EB实例没有访问我的私人github仓库所需的SSH密钥。如果我将HTTPS样式的gi