我正在尝试在 Jenkins 和 Gogs 之间设置自动化管道,但在将两者连接在一起时遇到了一些问题。我觉得我已经正确遵循了流程,但最后仍然收到 401。
以下是我已采取的步骤:
1)登录我的jenkins主服务器,并登录jenkins用户
2)生成密钥对
ssh-keygen -t rsa -b 4096 -C "[email protected]"
3)在全局凭证下向詹金斯添加私钥
4)向 Gogs 添加公钥
5)去创建一个新的管道,当我输入存储库名称时出现以下错误:
Help for feature: Repository URL
Failed to connect to repository : Command "git ls-remote -h https://www-git1.mmm.local/git-admin/SF-Firefly-RK3399 HEAD" returned status code 128:
stdout:
stderr: error: The requested URL returned error: 401 Unauthorized while accessing https://www-git1.mmm.local/git-admin/SF-Firefly-RK3399/info/refs
fatal: HTTP request failed
更新:
所以我不确定这是否会成为一个问题,但我意识到我的 gogs 服务器和 jenkins master 正在运行两个不同版本的 git:
Gogs:git 版本 1.8.3.1 Jenkins:git 版本 1.7.1
这可能是我的问题的根源吗?
答案1
Jenkins 知道你想在 git 中使用 https 协议。也许你已经输入了,www-git1.mmm.local/git-admin/SF-Firefly-RK3399
然后它被转换为https://www-git1.mmm.local/git-admin/SF-Firefly-RK3399
由于您已经生成了 ssh 密钥,最好将其明确设置为您的 git url。ssh://[email protected]/opt/local/absolute/path/to/repo