2016-08-11 16 views
1

クライアント用のgitリポジトリの設定を自動化する処理中です。これは、TFS 2015でビルドテンプレート定義をセットアップすることです。これらのテンプレートの設定を、他の多くのビルド/デプロイメント関連ファイルと一緒に別のリポジトリに保存することを選択しました(何百ものリポジトリがあり、 )。TFS 2015チームサービスの秘密変数を設定するREST API経由でビルドする

私は(VSTS/VSOビルドシステムに非常によく似ています)新しいオンプレムTFS 2015のビルドシステムを使用して、物事のすべての種類のAPIを照会しています。 Build definitionsBuild Definition Templatesは私が今作業しているもので、私の特定の問題がある場所です。 (保存されたビルド定義またはビルド定義テンプレートのいずれかのために)照会する

Secured Variable in TFS UI

が は、TFSが正しく返し

ビルド変数の数は、私は非公開たいAPIキーが含まれています"安全"と設定されている変数の空白文字列ですが、応答JSONには "secret"という変数への参照は含まれていません。ここでは、(ビルド定義テンプレートのその同じ)私は、ビルド定義を取得するときにJSONの抜粋が返されます:

(ドキュメントで定義された)ウリを呼び出し

GET ます。https:// {インスタンス}/DefaultCollection/{プロジェクト}/_のAPI /ビルド/定義/ {definitionId}?APIバージョン= {バージョン} [&リビジョン= {INT}]

抜粋

"variables": { 
    "system.debug": { 
     "value": "false", 
     "allowOverride": true 
    }, 
    "system.prefergit": { 
     "value": "true" 
    }, 
    "MySecureVariable": { 
     "value": "" 
    } 
} 

「isSecret」などのプロパティが存在することが予想されますが、これを参照するドキュメントや例は見つかりません。ドキュメントでは、がサポートされていないかどうかも言及していません。がサポートされているため、私は迷っています。

変数を値に設定すると(つまり、ビルド定義テンプレートを使用して新しいビルド定義を作成すると)、「秘密」オプションがUIで無効になり、キーが表示されます。あなたは、誰かがUIに入り、変数を手動で秘密にすることができると主張することもできますが、それは忘却に役立つ追加のステップです。

これらの秘密変数はパスワードセーフに保存されており、実行時にスクリプトを実行する人にパスワードを入力するよう促します(または、私はセーフからの読み込みを自動化します - まだ分かりません)。しかしそれはポイントの横にある。

セキュリティ保護された変数をAPI経由で直接設定する方法については、誰でも助言できますか?

答えて

1

TFS UIの変数を設定しながら、デバッグ/ HTTPトラフィックの監視を行うことでわかりました。基本的に、私の推測は正しかった!

ビルド定義テンプレートやビルド定義をどのようにセットアップしても、TFSは変数がREST APIを介して秘密であると報告することはありません。ただし、テンプレートを他の場所に格納するか(「ビルド定義の取得」または「ビルド定義テンプレートの取得」REST API呼び出しから戻されたJSONオブジェクトの操作)、自分で設定を行うことができます。

上記の私の例では、次のようになります。

"variables": { 
    "system.debug": { 
     "value": "false", 
     "allowOverride": true 
    }, 
    "system.prefergit": { 
     "value": "true" 
    }, 
    "MySecureVariable": { 
     "value": "", 
     "isSecret": "true" 
    } 
} 

保存REST APIを使用してビルド定義テンプレートでこの設定を使用すると、TFS UIを介して、そのテンプレートを使用する場合、変数は秘密としてマークされることを意味するものではありません。ただし、スクリプトを使用してビルド定義の作成を自動化してプロパティを設定すると、その結果のビルド定義によって変数が秘密としてマークされます。

関連する問題