我正在爲客戶端自動化設置git存儲庫。這涉及到在TFS 2015中設置構建模板定義。我選擇將這些模板的配置與其他許多構建/部署相關的文件一起存儲在單獨的存儲庫中(有數百個回購,並且默認情況下它們都具有相似的構建)。通過REST API在TFS 2015團隊服務構建中設置祕密變量
我使用新的預置型TFS 2015年構建系統(非常類似於VSTS/VSO構建系統),和查詢API的各種事情。 Build definitions和Build Definition Templates是我現在正在處理的問題,這是我的具體問題所在。
許多構建變量包含的內容我想保持私有API密鑰:
查詢時(對於存儲生成定義或生成定義模板),TFS正確地返回任何設置爲「安全」的變量的空白字符串 - 但響應JSON不包含任何對「祕密」變量的引用。下面是JSON的摘錄時返回的我檢索生成定義(其同樣爲生成定義模板):
呼叫URI(在文檔中定義)
GET 的https:// {實例}/DefaultCollection /(項目)/ _的API /編譯/定義/ {} definitionId?API版本= {}版本[&修訂= {INT}]
摘錄
"variables": {
"system.debug": {
"value": "false",
"allowOverride": true
},
"system.prefergit": {
"value": "true"
},
"MySecureVariable": {
"value": ""
}
}
我希望有一個像「isSecret」或類似的屬性,但我找不到任何文檔或示例引用此。該文件也沒有提及,如果它不支持而不是,所以我很茫然。
如果我將該變量設置爲一個值(即,我使用構建定義模板創建新的構建定義),則UI中的「祕密」選項被禁用,並且該關鍵是可見的。你可能會爭辯說有人可能會進入用戶界面並手動將該變量標記爲祕密,但這是一個額外的步驟,可能會導致健忘。
這些祕密變量存儲在一個密碼安全的,我會提示運行腳本的人在運行時輸入它們(或者我會自動從安全的讀取 - 不知道)。但這並不重要。
任何人都可以告訴我如何通過API直接設置安全變量?