Azure DevOps APIアクションを使用すると、各操作に専用のアクションを必要とせずに、ワークフローから直接任意のAzure DevOps REST APIを呼び出すことができます。
Azure DevOps APIを実行する
このアクションを使用すると、『Azure DevOps REST API リファレンス』に記載されている任意の操作を実行できます。組織、APIパス、HTTPメソッド、およびオプションのリクエスト本文を指定してください — アクションが認証を自動的に処理します。
このアクションで利用可能な入力:
入力フィールド | オプション性 | タイプ | 説明 |
|---|---|---|---|
| 必須 | 弦 | AzureサービスプリンシパルのclientId(UUID形式)。シークレットとして渡します。 方法をご覧ください。 |
| 必須 | 弦 | AzureサービスプリンシパルのclientSecret。シークレットとして渡します。 方法をご覧ください。 |
| 必須 | 弦 | Azureテナント識別子(UUID形式)。シークレットとして渡すことができます。 |
| 必須 | 弦 | Azure DevOps組織の名前。例:
|
| 必須 | 弦 | リクエストのURLパス(最大長1000)。例:
|
| 必須 | 弦 | [
] のうちの1つ |
| オプション | 地図 | JSONマップとしてのオプションのボディです。リクエストにボディが必要な場合は、
、
、および
メソッドで渡します。シークレット参照をサポートしています。 |
| オプション | リスト | 応答から値を抽出するためのJQ式のリスト。各セレクターは、名前をJQ式にマッピングします。例:
|
このアクションは、以下の出力を返します:
出力フィールド | タイプ | 説明 |
|---|---|---|
| ブール値 |
|
| 弦 | アクションが失敗した場合、失敗の理由が含まれます。 |
| オブジェクト |
各APIエンドポイントは異なるレスポンスを返します。Azure DevOps REST APIリファレンスを参照してください。 |
| 弦 | 非同期操作をポーリングするURL。完了を追跡するには、
から
または
を読み取ります。 |
| 整数 | 非同期URLの再試行またはポーリングを行う前にサーバーが推奨する待機時間(秒)。 |
例:プロジェクトの取得
- name: getProjects type: action action: azure.devops.api version: 1 inputs: clientId: ${{ :secrets:azure-client-id }} clientSecret: ${{ :secrets:azure-client-secret }} tenantId: ${{ :secrets:azure-client-tenant }} organization: ${{ :secrets:organization }} urlPath: _apis/projects method: GET例:パイプラインを作成する
- name: createPipeline type: action action: azure.devops.api version: 1 inputs: clientId: ${{ :secrets:azure-client-id }} clientSecret: ${{ :secrets:azure-client-secret }} tenantId: ${{ :secrets:azure-client-tenant }} organization: ${{ :secrets:organization }} urlPath: myProject/_apis/pipelines?api-version=7.1 method: POST body: name: testPipeline folder: \ configuration: type: yaml path: pipelineConfig.yml repository: id: 1a8bcfa4-1412-4b3b-af36-4ff1aa5860a1 name: testRepository type: azureReposGit selectors: - name: pipelineId expression: .response.id - name: pipelineName expression: .response.name例:パイプラインを実行する
- name: runPipeline type: action action: azure.devops.api version: 1 inputs: clientId: ${{ :secrets:azure-client-id }} clientSecret: ${{ :secrets:azure-client-secret }} tenantId: ${{ :secrets:azure-client-tenant }} organization: ${{ :secrets:organization }} urlPath: myProject/_apis/pipelines/1/runs?api-version=7.1-preview.1 method: POST body: resources: {} variables: {}例:パイプラインを削除する
- name: deletePipeline type: action action: azure.devops.api version: 1 inputs: clientId: ${{ :secrets:azure-client-id }} clientSecret: ${{ :secrets:azure-client-secret }} tenantId: ${{ :secrets:azure-client-tenant }} organization: ${{ :secrets:organization }} urlPath: myProject/_apis/build/definitions/1?api-version=7.1-preview.7 method: DELETE