2012-08-25 130 views
0

我已經設置了jenkins以便從bitbucket repo中提取代碼,但要做到這一點,我必須開始使用SSH代替HTTPS,因此我重新配置了mercurial來執行此操作。Jenkins,bitbucket,使用SSH

但是,我現在無法推送文件,因爲我收到以下錯誤:「存儲庫訪問被拒絕,通過部署密鑰訪問是隻讀」。

我所做的是在bitbucket的部署密鑰部分設置公鑰,並在pageant中啓動私鑰。

有誰知道我該如何擺脫這個錯誤?

感謝您的幫助。

順便說一句。這是我的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://[email protected]/username/project 

我花了幾天時間就已經設置了一切,所以任何答案可以理解的:d感謝。

回答

2

當你通過SSH推送到bitbucket時,你需要使用你的 ssh密鑰,而不是你設置的部署密鑰。你可以在你的bitbucket設置中自己添加一個。通常你會讓Jenkins作爲自己的windows用戶使用自己的pagent運行,並且該用戶將使用只讀部署密鑰。你會像你自己的windows用戶那樣做你的推動,你會使用你自己的ssh密鑰。

這就是說,如果你想貿然去做你也許可以改變你[paths]節這個度日:

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

然後當詹金斯拉它會使用default路徑,這是ssh和您配置的部署密鑰。當你推動你將使用default-push路徑,這是http,並會檢查你的[auth]部分(或提示你輸入密碼)。