Trello を使用して Azure DevOps Services と TFS のサービス フックを作成する

Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019

Azure DevOps からのイベントに応答して Trello にカードとリストを作成します。 たとえば、コードがプッシュされたときやビルドが発生した場合などです。

Trello 承認トークンを取得する

  1. Trello アカウントをお持ちでない場合は、Trelloサインアップしてください。

  2. [Azure DevOps Services for Trello の承認] ページ移動し、Trello 資格情報でサインインします。

  3. Azure DevOps に Trello アカウントの使用を許可します。

    Azure DevOps Services を許可する

  4. 承認トークンをコピーします。

    Trello 承認トークン

Azure DevOps Services イベントから Trello カードまたはリストを作成します。

  1. プロジェクトの [サービス フック] ページに移動します。

    https://{orgName}/{project_name}/_settings/serviceHooks

    プロジェクト管理ページ

    [サブスクリプションの作成] を選択します。

  2. Trello サービスを選択します。

    [サービス] ページ、Trello が選択されている

  3. トリガーする Visual Studio イベントを構成します。 この場合、作業項目の作成時にサブスクリプションが応答します。

    [トリガーの構成] ページ

  4. トリガーに応答して Trello が実行するアクションを設定します。カードまたはリストを作成します。

    [アクションの構成] ページ

    プレースホルダーを使用して、サブスクリプションによって作成されるカードまたはリストの名前と説明に、イベントのコンテンツを挿入できます。 たとえば、テスト通知を実行すると、作成されるカードの名前は "Bug #5: Some great new idea!" になります。これは、テスト作業項目がバグ (ID=5) で、タイトルが "Some great new idea!" であるためです。

  5. サービス フック サブスクリプションをテストし、ウィザードを完了します。

    テスト通知

これでセットアップされました。 Trello に移動し、カードが表示されるのを確認します。

バグ #5 のカードを含むウェルカム ボード

プレースホルダー

プレースホルダーは、リストの名前、またはサブスクリプションによって作成されるカードの名前または説明に挿入できます。 リストまたはカードが作成されると、プレースホルダーは発生したイベントの値に置き換えられます。 このページのカード名に使用した例では、次のものが使用されます。

    {{workitem.workItemType}} #{{workitem.id}}: {{workitem.title}}

そのため、ID 5 とタイトル "Some great new idea!" でバグが作成されると、カード名は "Bug #5: Some great new idea!" になります。

プレースホルダーの基本的な形式は、 {{resource.field}} リソースがイベントを発生させるリソースの名前 (作業項目、ビルドなど) であり、フィールドは ID などのイベントのリソース セクション内のフィールドです。 そのため、サブスクリプションが完了したビルドの場合は、次のようになります。

    Build {{build.id}} completed at {{build.finishTime}}

ここで、ビルドはリソースと ID の名前で、finishTime はこのリソースで使用できるフィールドです。 使用できるイベントの種類、フィールド、リソースを理解するには、イベントリファレンスを 参照してください

作業項目フィールド

作業項目フィールドは、次の例のようにフィールド配列のイベントに表示されます。

    " fields": {
                " System.AreaPath": "Fabrikam-Fiber-Git", 
                " System.TeamProject": "Fabrikam-Fiber-Git", 
                " System.IterationPath": "Fabrikam-Fiber-Git", 
                " System.WorkItemType": "Product Backlog Item", 
                " System.State": "New", 
                " System.Reason": "New backlog item", 
                " System.CreatedDate": "2014-11-05T21:11:28.85Z", 
                " System.CreatedBy": "Normal Paulk", 
                " System.ChangedDate": "2014-11-05T21:11:29.23Z", 
                " System.ChangedBy": "Normal Paulk", 
                " System.Title": "Test PBI", 
                " Microsoft.Azure DevOps Services.Common.BacklogPriority": 999999999, 
                " WEF_6CB513B6E70E43499D9FC94E5BBFB784_Kanban.Column": "New"
           },

イベント定義から直接作業すると、次の例のようにカード名が作成されます。

    {{workitem.fields["System.workItemType"]}} #{{workitem.fields["System.id"]}: {{workitem.fields["System.title"]}}

ショートカットとして、リソースのフィールドであるかのように、System または Microsoft.Azure DevOps Services.Common 名前空間内の任意のフィールドを参照できます。 {{workitem.fields["System.workItemType"]}}{{workitem.workItemType}} になります。

プレースホルダー式

これらのプレースホルダーは、主に Mustache と互換性のあるハンドルバー テンプレートの実装を使用します。 便利な式には、次のようなものがあります。

式の型 使用例
基本的な式 {{workitem.name}}
配列式 {{pullRequest.reviewers.[0].displayName}}
口ひげセクション {{#workitem.assignedTo}} この WI が割り当てられている {{/workitem.assignedTo}}
口ひげ逆切片 {{^workitem.assignedTo}} この WI は割り当てられません {{/workitem.assignedTo}}
Handlebars ブロック ヘルパー with
if/else
unless
スキャンを
ハンドル バーのパス ...
this
たとえば、{{../comment/id}}{{this/title}} のようにします。
テンプレートのコメント {{!-- this is a handlebar comment --}}

価格

Azure DevOps は、外部サービスとの統合に関してフレームワークに対して課金されません。 サービスに関連する価格については、特定のサービスのサイトを参照してください。

Q & A

Q: プログラムでサブスクリプションを作成できますか?

A: はい、詳細についてはこちらをご覧 ください

Q: Trello に関する詳細情報は入手できますか?

A: はい、 trello.com