0

我已经设置了 jenkins,以便它从 bitbucket repo 中提取代码,但要做到这一点,我必须开始使用 SSH 而不是 HTTPS,所以我重新配置了 mercurial 来这样做。

但是,我现在无法推送文件,因为我收到以下错误:“存储库访问被拒绝,通过部署密钥访问是只读的”。

我所做的是在 bitbucket 的部署密钥部分设置公钥,并在选美中启动私钥。

有谁知道我怎样才能摆脱这个错误?

感谢帮助。

顺便提一句。这是我的 mercurial.ini:

[ui]
username = username <email>
ssh = "TortoisePlink.exe" -ssh -2 -batch -C

[auth]
bitbucket.username = username
bitbucket.password = password

[extensions]
largefiles =

[paths]
default = ssh://hg@bitbucket.org/username/project

我已经花了几天时间来设置所有东西,所以任何答案都将不胜感激:D 谢谢。

4

1 回答 1

2

当您通过 ssh 推送到 bitbucket 时,您需要使用您的ssh 密钥,而不是您设置的部署密钥。您可以在您的 bitbucket 设置中自己添加一个。通常,您会让 Jenkins 作为自己的 windows 用户使用自己的页面运行,并且该用户将使用只读部署密钥。您将以自己的 Windows 用户身份进行推送,并且您将使用自己的 ssh 密钥。

也就是说,如果您想匆忙执行此操作,您可能可以通过将您的[paths]部分更改为:

[paths]
default = ssh://hg@bitbucket.org/username/project
default-push = http://bitbucket.org/username/project

然后,当 jenkins 拉取时,它将使用default路径,即 ssh 和您配置的部署密钥。当您推送时,您将使用default-pushhttp 路径,并将检查您的[auth]部分(或提示您输入密码)。

于 2012-08-26T00:35:29.590 回答