2014-09-29 75 views
0

有沒有辦法在沒有訪問回購的情況下獲取上次提交信息? svn log --limit 1嘗試連接到回購。SVN離線獲取上次提交信息

編輯:我有憑據設置和使用它們來檢查出源。

我想要實現的是讓Jenkins根據提交消息觸發另一個作業,即它包含字符串「#build」啓動作業X.我的嘗試是在Shell構建步驟中解析它並根據其結果執行工作。但由於我沒有匿名訪問repo,也不想在shell腳本中嵌入憑據,所以我不知道如何實現這一點。

接下來會的git ..

+0

您必須擁有一些憑據才能真正更新Jenkins中的回購?你是對的,git在本地存儲這個歷史記錄,但它處於相同的位置:它無法更新沒有證書。您的Jenkins服務器的管理員能否安排足夠的回購權限? – Rup 2014-09-29 11:44:20

+0

我擁有一些憑據,問題是,我不希望它們在我的shell腳本中解析提交消息的明文中顯示。 – atx 2014-09-29 16:11:47

回答

3

這是Jenkins Credentials插件的用途。

您可以在Jenkins全局配置上安全地配置憑據,並讓作業參考該憑證。無需在腳本中寫入任何內容。

編輯:
爲了安全地從一個殼步驟

  • 內使用密碼安裝EnvInject plugin
  • Jenkins全局配置,找到全局密碼部分。
  • 添加一個名稱(這將是環境變量名稱)和密碼(將加星標****)。
  • 根據作業配置,找到構建環境部分。
  • 選中標記將構建的密碼注入爲環境變量
  • 然後選中標記全局密碼

在任何構建步驟中,現在您可以使用$name(如前所定義)引用密碼,就像您使用純文本鍵入密碼時一樣。

  • 密碼變量只能在作業執行時間被注入(通過自身的服務器的命令行中輸入$name不會產生任何東西,像所有的詹金斯的變量,它不是持久性的)。
  • 作業控制檯日誌將顯示****而不是密碼(如果顯示)。
  • 您可以爲每個作業配置密碼,而不是全局配置,以便其他作業無法使用它。

唯一的安全擔心的是,如果某人有管理權限來配置你的工作,他們可以寫echo $name > secretpassword.txt爲構建步驟,然後查看工作區中的文件。但你應該小心你分配管理權限。

+0

我意識到這一點,但我的問題是如何獲得第一個提交信息。我使用憑證檢查源代碼,但接下來我想檢查提交消息是否包含「#build」或其他內容。 – atx 2014-09-29 16:03:28

+0

用替代方法編輯 – Slav 2014-09-29 16:18:38

0

我相信,在SVN資源庫的操作使用SVN倉庫的憑證設置。但是,如果您有權訪問託管SVN存儲庫的服務器,則可以創建一個自己的腳本來讀取{repository-root}/db/revprops文件夾。在這裏你可以找到所有修訂提交信息。

+0

如果您有讀取訪問權限,您可以使用帶有'file:// URL'的標準SVN客戶端爲您執行日誌,這將繞過由Apache或svnserve添加的任何身份驗證。 – Rup 2014-09-29 13:07:59

+1

其實我沒有任何訪問SVN服務器本身 – atx 2014-09-29 15:51:27