# Teams での GitHub の通知のカスタマイズ

GitHub通知をカスタマイズして、Teams 内で作業を管理します。

通知をカスタマイズするには、Microsoft Teams チャネルに関連するアクティビティをサブスクライブし、プロジェクトにあまり役に立たないアクティビティからサブスクライブを解除します。

### 既定で有効になっている通知

次の通知は既定で有効になっていますが、`@GitHub unsubscribe OWNER/REPO [FEATURE]` コマンドを使用して無効にできます。

| 機能            | 説明                                                     |
| ------------- | ------------------------------------------------------ |
| `issues`      | 問題を開いた、閉じた、または再度開いた。                                   |
| `pulls`       | 新規、マージされた、クローズされた、または再オープンされた pull request (プル リクエスト)。 |
| `commits`     | 既定のブランチでの新しいコミット (通常は `main`)。                         |
| `comments`    | 問題とプルリクエストに関する新しいコメント。                                 |
| `deployments` | 展開の状態の更新。                                              |
| `releases`    | 新しいリリースとプレリリースが公開されました。                                |

> \[!NOTE]
> リポジトリの通知も既定で有効になっています。 リポジトリが公開または削除されると、通知が表示されます。 リポジトリの更新は破壊的なアクティビティであり、この通知を無効にすることはできません。

### 既定で無効になっている通知

次の通知は既定で無効になっていますが、`@GitHub subscribe owner/repo [FEATURE]` コマンドを使用して有効にできます。

| 機能                             | 説明                                |
| ------------------------------ | --------------------------------- |
| `reviews`                      | Pull request のレビュー。               |
| `workflows`                    |                                   |
| GitHub Actions ワークフローの実行と承認通知。 |                                   |
| `branches`                     | ブランチの作成と削除。                       |
| `discussions`                  | ディスカッションが作成または回答されました。            |
| `+label:"YOUR-LABEL"`          | 問題、プルリクエスト、コメントをラベルに基づいてフィルターします。 |

一度に複数の設定を登録または解除できます。 例えば次が挙げられます。

* pull request (プル リクエスト) レビューとコメントに対応するアクティビティを有効にするには、`@GitHub subscribe OWNER/REPO reviews comments` を使用します。
* 問題と pull request のアクティビティをオフにするには、`@GitHub unsubscribe OWNER/REPO issues pulls` を使用します。

## 通知のフィルター処理

分岐フィルターとラベル フィルターを使用して、通知をさらにカスタマイズできます。 ブランチ フィルターを使用すると、ブランチ名に基づいてコミット通知をフィルター処理できますが、ラベル フィルターを使用すると、問題をフィルター処理したり、それらに適用されたラベルに基づいて要求通知をプルしたりできます。

### コミット通知の分岐フィルター

ブランチ フィルターを使用すると、ブランチ名に基づいてコミット通知をフィルター処理できます。 既定では、 `commits` イベントをサブスクライブすると、既定のブランチの通知が表示されます。 ただし、特定のブランチ、ブランチのパターン、またはすべてのブランチを基準としてフィルター処理を選択できます。

| 構成例                                              | 説明                     |
| ------------------------------------------------ | ---------------------- |
| `@GitHub subscribe OWNER/REPO commits`           | 既定のブランチのコミット通知を受信します。  |
| `@GitHub subscribe OWNER/REPO commits:main`      |                        |
| `main` ブランチのコミット通知のみを受信します。                      |                        |
| `@GitHub subscribe OWNER/REPO commits:feature/*` |                        |
| `feature/`で始まるすべてのブランチのコミット通知を受け取ります。            |                        |
| `@GitHub subscribe OWNER/REPO commits:*`         | すべてのブランチのコミット通知を受信します。 |

コミット機能の登録を解除するには、`@GitHub unsubscribe OWNER/REPO commits`を使用します。

> \[!NOTE] 以前に、 `commits:all` フィルターを使用して、すべてのブランチのコミット通知を受信している可能性があります。 このフィルターは 閉鎖。 すべてのブランチのコミット通知を受信するには、代わりに `commits:*` フィルターを使用します。
> `commits:all` フィルターを以前に設定している場合は、`commits:*` フィルターを使用するように構成を更新するまで引き続き動作します。

### 問題とプルリクエストの通知に対するラベルフィルター

ラベル フィルターを使用すると、問題やプル要求に適用されたラベルに基づいて通知をフィルター処理できます。 ラベル フィルターを設定すると、指定したラベルを含むイベントの通知のみが送信されます。 ラベルの詳細については、「 [ラベルを管理する](/ja/enterprise-cloud@latest/issues/using-labels-and-milestones-to-track-work/managing-labels) 」と [「AUTOTITLE」を](/ja/enterprise-cloud@latest/issues/tracking-your-work-with-issues/using-issues/filtering-and-searching-issues-and-pull-requests)参照してください。

現時点では、リポジトリごとに必要なラベル フィルターを 1 つだけ持つことができます。 次の表は、ラベル フィルターの影響を受けるイベントの種類を示しています。

| イベントの種類      | ラベルでフィルタリングされています                                                                                                                                                                                                                                                                                                                                                                                                                  |
| ------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Pull Request | <svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-check" aria-label="Included" role="img"><path d="M13.78 4.22a.75.75 0 0 1 0 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L2.22 9.28a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018L6 10.94l6.72-6.72a.75.75 0 0 1 1.06 0Z"></path></svg>                                                                                                            |
| 課題           | <svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-check" aria-label="Included" role="img"><path d="M13.78 4.22a.75.75 0 0 1 0 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L2.22 9.28a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018L6 10.94l6.72-6.72a.75.75 0 0 1 1.06 0Z"></path></svg>                                                                                                            |
| コメント         | <svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-check" aria-label="Included" role="img"><path d="M13.78 4.22a.75.75 0 0 1 0 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L2.22 9.28a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018L6 10.94l6.72-6.72a.75.75 0 0 1 1.06 0Z"></path></svg>                                                                                                            |
| レビュー         | <svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-check" aria-label="Included" role="img"><path d="M13.78 4.22a.75.75 0 0 1 0 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L2.22 9.28a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018L6 10.94l6.72-6.72a.75.75 0 0 1 1.06 0Z"></path></svg>                                                                                                            |
| コミット/プッシュ    | <svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-x" aria-label="Not included" role="img"><path d="M3.72 3.72a.75.75 0 0 1 1.06 0L8 6.94l3.22-3.22a.749.749 0 0 1 1.275.326.749.749 0 0 1-.215.734L9.06 8l3.22 3.22a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L8 9.06l-3.22 3.22a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042L6.94 8 3.72 4.78a.75.75 0 0 1 0-1.06Z"></path></svg> |
| 支店           | <svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-x" aria-label="Not included" role="img"><path d="M3.72 3.72a.75.75 0 0 1 1.06 0L8 6.94l3.22-3.22a.749.749 0 0 1 1.275.326.749.749 0 0 1-.215.734L9.06 8l3.22 3.22a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L8 9.06l-3.22 3.22a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042L6.94 8 3.72 4.78a.75.75 0 0 1 0-1.06Z"></path></svg> |

#### ラベル フィルターの作成

ラベル フィルターを作成するには、次のコマンド形式を使用します。

```text copy
@GitHub subscribe [OWNER/REPO] +label:"YOUR-LABEL"
```

これにより、 `YOUR-LABEL`値を持つ必須ラベル フィルターが作成されます。 フィルターをサポートする受信イベントは、そのラベルがない限り破棄されます。

#### ラベル フィルターの更新

NEW-LABEL 値を指定することで、既存のラベル フィルターを更新できます。

```text copy
@GitHub subscribe [OWNER/REPO] +label:"NEW-LABEL"
```

これにより、"YOUR-LABEL" フィルターが "NEW-LABEL" フィルターに置き換えられます。

#### ラベル フィルターの削除

`+label` オプションを指定して unsubscribe コマンドを使用して、既存のラベル フィルターを削除できます。

```text copy
@GitHub unsubscribe [OWNER/REPO] +label:"NEW-LABEL"
```

これにより、"NEW-LABEL" フィルターが削除され、チャネルは、ラベルのフィルター処理を行わずに、サブスクライブされたイベントのすべての通知を受信します。

#### アクティブなラベル フィルターの表示

チャネルの現在アクティブなラベル フィルターを表示するには、次のコマンドを使用します。

```text copy
@GitHub subscribe list features
```

#### 有効なフィルター

Teams の GitHub アプリは、Teams と GitHub が標準として提供するすべての絵文字を含む、ラベル フィルターの最も一般的な特殊文字をサポートしています。 サポートされていない特殊文字を含むラベルが表示されることはほとんどありません。 たとえば、 `:foo:`としてエンコードされていないマルチバイト文字や、 `,` 文字を使用するラベルが期待どおりに機能しない場合があります。

## GitHub Actions ワークフロー通知

`@GitHub Actions subscribe OWNER/REPO workflows`形式を使用して、"ワークフロー" 機能を使用して、チャネルまたは個人用アプリからGitHubワークフロー実行通知をサブスクライブできます。

"ワークフロー" をサブスクライブしている場合は、次の機能を使用できます。

* 新しいワークフロー実行がトリガーされると、通知が表示されます。
* スレッドで承認通知を返信として追跡し、チャネルまたは個人用アプリから直接通知を承認できます。
* ワークフローが完了すると、ワークフロー実行の完全なコンテキストと履歴を表示できるように、スレッドで更新が応答として取得されます。
* 何かが失敗した場合は、ワークフローを再実行することを選択できます。また、必要に応じてデバッグ ログを有効にすることもできます。

> \[!NOTE] 2025 年 3 月 10 日以降、 GitHub Enterprise Server バージョン 3.17 以降では、個々のワークフロー ジョブの進行状況は通知されなくなります。 詳細については、 [GitHub 変更ログ](https://github.blog/changelog/2025-02-03-deprecation-of-real-time-github-actions-workflow-job-events-in-slack-and-microsoft-teams-apps/) を参照してください。

### ワークフロー通知フィルター

ワークフロー通知をフィルター処理するには、次のオプションを使用します。

| Filter                                                       | 説明                                                    |
| ------------------------------------------------------------ | ----------------------------------------------------- |
| `name`                                                       | ワークフローの名前でフィルター処理します。                                 |
| `actor`                                                      | ワークフローを開始したユーザーによってフィルタリングします。                        |
| `branch`                                                     | ワークフローが実行されているブランチでフィルター処理します。                        |
| `pull_request` イベントが含まれている場合、ブランチはプル要求が作成されるターゲット ブランチになります。 |                                                       |
| `event`                                                      | ワークフローをトリガーしたイベント (プッシュ、pull\_requestなど) でフィルター処理します。 |

ワークフロー通知フィルターは、次の形式で構成できます。

```text copy
@GitHub subscribe OWNER/REPO workflows:{name:"YOUR-WORKFLOW-NAME" event:"WORKFLOW-EVENT" branch:"BRANCH-NAME" actor:"USERNAME"}
```

コンマで区切って、フィルターごとに複数の値を渡すこともできます。 例えば次が挙げられます。

```text copy
@GitHub subscribe OWNER/REPO workflows:{name:"YOUR-WORKFLOW-NAME","ANOTHER-WORKFLOW-NAME" event:"WORKFLOW-EVENT","ANOTHER-WORKFLOW-EVENT" branch:"BRANCH-NAME","ANOTHER-BRANCH-NAME" actor:"USERNAME","ANOTHER-USERNAME"}
```

既定では、フィルターを渡さずにワークフロー通知を構成すると、既定のブランチを対象とするプル要求によってトリガーされるワークフロー用に構成されます。 1 つまたは複数のエントリを渡すことができます。

ワークフロー通知の登録を解除するには、`@GitHub unsubscribe OWNER/REPO workflows` コマンドを使用します。

> \[!NOTE] Teams で GitHub Actions 通知を受信するには、 GitHub アプリに追加のアクセス許可が必要です。 ワークフローを初めてサブスクライブしようとすると、これらのアクセス許可を付与するように求められます。

## デプロイ通知

個別のデプロイ通知を構成することもできます。 これらのデプロイは、 GitHub Actions から、またはデプロイ API を使用して外部ソースから行うことができます。 「[デプロイ用の REST API エンドポイント](/ja/enterprise-cloud@latest/rest/deployments/deployments)」を参照してください。

次のコマンドを使用して、デプロイ通知をサブスクライブまたはサブスクライブ解除できます。

```text copy
@GitHub subscribe OWNER/REPO deployments
@GitHub unsubscribe OWNER/REPO deployments
```

> \[!NOTE]
> GitHub Actionsを使用していて、環境への展開を追跡する場合は、`workflows`機能をお勧めします。これは、より完全な画像と Teams から直接展開を承認する機能を提供するためです。