Azure DevOps Server |Azure DevOps Server 2022
ヒント
テーマ設定や VSS からの移行など、最新の拡張機能開発ガイダンスについて説明します。SDK については、 Azure DevOps Extension SDK 開発者ポータルを参照してください。
Important
この記事は、Azure DevOps Server (オンプレミス) にのみ適用されます。 Azure DevOps Services の場合は、代わりに 継承プロセス モデル を使用して作業項目フォームをカスタマイズします。
作業項目フォームのレイアウトを含む witadmin ツールを使用して、作業項目の種類を XML としてエクスポートできます。 この例の一部として、ページ、グループ、およびコントロールの投稿をレイアウトに追加します。 また、アジャイルの "ユーザー ストーリー" 作業項目の種類にコントロールを追加します。 詳細については、 WebLayout xml リファレンスを参照してください。
作業項目フォームに拡張機能を追加する
Azure DevOps Server に作業項目フォーム拡張機能をインストールします。
Developer Command Promptを開きます。 次のコマンドを使用して、xml ファイルをデスクトップにエクスポートします。witadmin exportwitd /collection:CollectionURL /p:Project /n:TypeName /f:FileName指定したディレクトリにファイルが作成されます。
このファイル内で、 WebLayout セクションに移動します。 WebLayout セクション内で、コメント BLOB は、インストールされている拡張機能がコレクションの作業項目フォームを対象とするかを指定します。 拡張機能ごとに、フォームのすべてのコントリビューションが ID と入力と共に一覧表示されます (コントロールコントリビューションの場合)。 次の例では、このコメントはコレクションにインストールされている color-control-dev 拡張機能を示しています。 拡張機能には、2 つの入力を受け取る 1 つの制御コントリビューションがあります。
<!--**********************************Work Item Extensions*************************** Extension: Name: color-control-dev Id: example.color-control-dev Control contribution: Id: example.color-control-dev.color-control-contribution Description: Inputs: Id: FieldName Description: The field associated with the control. Type: Field IsRequired: true Id: Colors Descriptions: The colors that match the values in the control. Type: String IsRequired: false[ 作業項目の拡張機能 ] セクションで拡張機能 ID を見つけます。
<!--**********************************Work Item Extensions*************************** Extension: Name: color-control-dev Id: example.color-control-dev ...次に示すように、[ 作業項目の拡張機能] セクションの下に拡張タグを追加して、作業項目フォームで拡張機能を使用できるようにします。 フォーム内にコントリビューションを配置するには、その拡張子を
Extensionsセクションで指定する必要があります。<!--**********************************Work Item Extensions*************************** ... Note: For more information on work item extensions use the following topic: https://go.microsoft.com/fwlink/?LinkId=816513 --> <Extensions> <Extension Id="example.color-control-dev" /> </Extensions>xml で拡張機能を指定すると、フォーム内の拡張機能で定義されている ページ コントリビューションと グループ コントリビューションの両方が自動的に配置されます。 次の例では、コントリビューションを移動できます。
ページの投稿を追加する
<Page Id="Details">
<PageContribution Id="<page contribution id>" />
...
グループの投稿を追加する
<Page Id="Details">
...
<Section>
...
<GroupContribution Id="<group contribution id>" />
...
ページコントリビューションとグループコントリビューションは、他のレイアウト要素を取ることはできません。
制御の貢献を追加する
ページやグループのコントリビューションとは異なり、xml で拡張機能を指定しても、コントロールのコントリビューションは自動的に配置されません。 フォームにこれらの投稿を追加するには、フォーム内に投稿タグを付けて追加します。 次の例では、 ControlContribution を 計画 グループに追加します。
コントロールコントリビューションに必要な入力が定義されている場合、ユーザーはその入力の値を指定する必要があります。 不要な入力の場合、ユーザーは入力に値を設定するかどうかを決定できます。 次の例では、 FieldName と Colors の入力が設定されます。
<Page Id="Details">
...
<Section>
...
<Group Id="Planning">
...
<ControlContribution Label="Priority" Id="example.color-control-dev.color-control-contribution">
<Inputs>
<Input Id="FieldName" Value="Microsoft.Azure DevOps Services.Common.Priority" />
<Input Id="Colors" Value="red;green" />
</Inputs>
</ControlContribution>
<Control Label="Risk" Type="FieldControl" FieldName="Microsoft.Azure DevOps Services.Common.Risk" />
witadminを使用して、この xml ファイルをインポートします。witadmin importwitd /collection:CollectionURL /p:Project /f:FileName
拡張機能は、作業項目フォームを使用して構成されます。