# Slack でのGitHubの使用

Slack でGitHubを使用してコラボレーションを改善し、ワークフローを合理化する方法について説明します。

Slack の GitHub 統合により、 GitHub アカウントを Slack の GitHub アプリに接続できます。 接続したら、スラッシュ コマンドを使用して、 GitHubとの対話、リポジトリ アクティビティに関する通知の受信、Slack 内でのチームとの直接の共同作業を行うことができます。

> \[!NOTE]
> \*
> GitHub Copilot Slack の現在のステータスは パブリック プレビュー 段階にあり、変更される可能性があります。

また、GitHub統合を使用して、スレッド内で詳細な調査、計画、トリアージ タスクの実行をCopilot cloud agentに依頼するなど、会話内のCopilot セッションを開始および誘導することもできます。 チームメイトは、互いにエージェントと共同作業を行い、コンテキストを追加し、前提条件を修正し、エージェント タスクを続行し、結果の成果物を確認できます。

## Slack で GitHub アカウントを GitHub アプリに接続する

> \[!NOTE] アカウントを接続するには、Slack ワークスペースの管理者が GitHub アプリをインストールしておく必要があります。 「[GitHubと Slack の統合](/ja/integrations/how-tos/slack/integrate-github-with-slack)」を参照してください。

1. Slack で、 GitHub アプリで直接メッセージを開始します。
2. 直接メッセージには、ウェルカム メッセージと、 GitHub アカウントを接続するためのリンクが事前に設定されます。 Slack の画面とブラウザーの GitHub のプロンプトに従って、接続を認証して承認します。

GitHub アカウントが接続されると、使用可能なコマンドと機能の一覧が Slack に表示されます。

## スラッシュ コマンドを使用して Slack で GitHub を操作する

スラッシュコマンドを使用するには、`/github` を入力した後に実行するコマンドを入力し、GitHub アプリが存在する任意の Slack チャネルまたはダイレクトメッセージのメッセージ入力フィールドに続けます。 アプリをチャネルに招待するには、チャネルに「 `/invite @github` 」と入力します。

| Command                                           | Description                                    |
| ------------------------------------------------- | ---------------------------------------------- |
| `/github help`                                    | 重要なコマンドとその説明の一覧を表示します。                         |
| `/github subscribe OWNER/REPO`                    | 指定したリポジトリの通知にチャネルをサブスクライブします。                  |
| `/github unsubscribe OWNER/REPO`                  | 指定したリポジトリの通知からチャネルの登録を解除します。                   |
| `/github subscribe list`                          | チャネルがサブスクライブされているすべてのリポジトリを一覧表示します。            |
| `/github open OWNER/REPO`                         | 指定したリポジトリでイシューを開きます。 問題のタイトルと説明を入力するように求められます。 |
| `/github close [ISSUE-LINK]`                      | 指定した問題を完了として閉じます。                              |
| `/github close [ISSUE-LINK] reason:"NOT-PLANNED"` | 理由を指定して、指定した問題を閉じます。                           |
| `"NOT-PLANNED"`を自分の理由に置き換えます。                     |                                                |
| `/github reopen [ISSUE-LINK]`                     | 指定した問題を再度開きます。                                 |
| `/github signin`                                  | " GitHub アカウントの接続" ワークフローを再起動します。              |
| `/github signout`                                 |                                                |
| GitHub アカウントを Slack ユーザーから切断します。                  |                                                |

> \[!NOTE] チャネルをリポジトリにサブスクライブすると、チャネルは、そのリポジトリ内のプル要求と問題に関するすべての `open`、 `close`、および `reopen` イベントに関する通知を受信します。 チャネルは、`push` イベントの通知をリポジトリの既定のブランチに直接受信します。

Slack で Copilot cloud agent の設定を変更するには、 `@GitHub settings` コマンドを使用します。

## Slack 内での Copilot cloud agent セッションの開始

GitHub統合には、Slack でのCopilot cloud agentが含まれます。 ディスカッションが行われているスレッドで GitHub Copilot を召喚し、それらのディスカッションのコンテキストに基づいて変更を加えるように依頼できます。

ダイレクト メッセージ、スレッド、チャネルで Copilot を使用します。 問題の作成、プル要求、その他の成果物に加えて、Slack で Copilot を操作すると、次のことができます。

* ディスカッションから調査と実装に直接移行します。
* 質問をしたり、エラーを調査したりします。
* 実装前に作業を計画する。
* チームメイトと協力してエージェントを操縦する。
* 任意のデバイスから作業を委任します。
* タスクを非同期的に実行します。
* 公開の場で、出来上がった成果物をレビューしてください。
* GitHub、ターミナル、または任意のコード エディターで、Slack の外部でエージェントによって生成された成果物の作業を再開します。

詳細については、「[Copilot クラウド エージェントと Slack の統合](/ja/copilot/how-tos/use-copilot-agents/cloud-agent/integrate-cloud-agent-with-slack)」を参照してください。

## 問題とプル要求の処理

Copilotを使用して、または使用せずに Slack から直接問題を作成、コメント、管理したり、要求をプルしたりできます。

Copilot にアクションを実行させるには、どのチャットでもアプリを`@GitHub`し、@mention に続けてタスクを入力します。

> \[!NOTE]
> 共有コンテキストで Copilot によって作成されたプル リクエストでは、アプリの ID が使用されます。 リポジトリルールセットを使用する場合、これらのプル要求は個人に起因しないため、リポジトリに少なくとも 1 つの承認が既に必要である限り、マージの前にもう 1 つの承認が必要です。 この機能は、既定では有効になっています。 「[ルールセットで使用できるルール](/ja/repositories/configuring-branches-and-merges-in-your-repository/managing-rulesets/available-rules-for-rulesets#additional-approval-for-unattributed-copilot-pull-requests)」を参照してください。

Copilotに関係なく問題やプル要求を処理する詳しい手順については、[Slack でのGitHub統合に関する問題の作成](/ja/integrations/tutorials/slack/create-issues) と [Slack でのGitHub統合に関する問題の管理](/ja/integrations/tutorials/slack/manage-issues) を参照してください。

## Slack での通知のメンション

Slack でリポジトリをサブスクライブすると、参照されているリポジトリ イベントの通知に自分が記載されていることがわかります。 たとえば、問題に割り当てられている場合、またはコメントに記載されている場合は、Slack の通知に自分自身が表示されます。

メンションを使用するには、Slack のGitHub アプリを通してGitHub アカウントにログインしている必要があります。 これにより、 GitHub は Slack ID を GitHub ID にマップできます。
[Slack でのGitHub アプリへのGitHub アカウントの接続を](#connecting-your-github-account-to-the-github-app-in-slack)参照してください。

> \[!NOTE]
> GitHub アプリを使用する複数の Slack ワークスペースがある場合、メンションは、GitHub アプリに最近ログインしたワークスペースでのみ機能します。 別のワークスペースで GitHub アプリにログインすると、メンションは前のワークスペースで動作しなくなります。

次のシナリオであなたが言及されます。

* あなたが問題に割り当てられています。
* レビューは pull request で要求されます。
* プルリクエスト、課題の説明、コメント、またはディスカッションで言及されています。
* デプロイメントについてレビューを依頼されています。
* pull request のレビューに関するスケジュール済みリマインダーを受け取ります。

Slack の \[メンション] ビューで、 GitHub メンションの概要を確認できます。 詳細については、Slack ドキュメント [のアクティビティ タブのトリアージ通知](https://slack.com/help/articles/19693583638803-Triage-notifications-in-the-Activity-tab) を参照してください。

Slack で GitHub 通知をカスタマイズする方法については、 [Slack でGitHubの通知をカスタマイズする](/ja/integrations/how-tos/slack/customize-notifications) を参照してください。

## スレッド化された会話

各問題またはプル要求の通知は、Slack のスレッドにグループ化されます。 親メッセージには常に、問題または pull request の最新の状態と、タイトル、説明、担当者、レビュー担当者、ラベル、チェックなどの他のメタデータが表示されます。 スレッド処理を使用すると、会話を整理し続け、特定の問題や pull request に関連する更新プログラムやディスカッションに簡単に従うことができます。 問題またはプル要求の状態が変更されると、関連する応答がスレッドとチャネルの両方に投稿され、チャネル内のすべてのユーザーが更新を認識するようになります。

個々のチャネルで問題のスレッド処理と pull request 通知を無効にすることができます。

1. スレッド処理を無効にする Slack チャネルで、「 `/github settings`」と入力します。
2. \[設定] メニューの \[プル要求と問題の通知のスレッドを無効にする] の右側にある \[ **無効にする**] をクリックします。

ユーザーまたはチャネルの他のメンバーは、同じ手順に従い、\[設定] メニューの \[ **有効]** をクリックすることで、いつでもスレッドを再び有効にすることができます。

## Slack チャネルへのコメントとレビューのブロードキャスト

既定では、コメントとレビューは関連するスレッドにのみ表示されます。 問題の参加者だけでなく、チャネル メンバーに表示させる場合は、次のコマンドを使用してブロードキャストをオプトインできます。

* コメントブロードキャストの場合は、 `/github subscribe OWNER/REPO comments:"CHANNEL"`

* レビュー放送には、`/github subscribe OWNER/REPO reviews:"CHANNEL"`を使用してください。

## Slack での GitHub アクティビティへのリンクの展開

リンク プレビューでは、Slack で GitHub アクティビティへのリンクを共有するときに、追加のコンテキストが提供されます。 次の GitHub アクティビティのリンク プレビューが Slack に表示されます。

* Pull Request
* 問題
* 直接リンクされたコメント
* 行番号付きのコードブロック
* 組織、リポジトリ、およびユーザー

次のいずれかが該当する場合、リンクのプレビューは表示されません。

* Slack ワークスペースではリンク プレビューは無効になっています。 Slack ドキュメントの「 [リンクを共有し、プレビュー設定を設定する](https://slack.com/help/articles/204399343-Share-links-and-set-preview-preferences#turn-off-link-previews-for-specific-sites) 」を参照してください。
* 過去 30 分間に同じリンクがチャネルで既に共有されています。
* 3 つ以上のリンクが同じメッセージで共有されます。
* リポジトリはプライベートであり、リンクを共有したユーザーは次のとおりです。
  * GitHub アカウントを Slack のGitHub アプリに接続していません。
  * メッセージが表示されたら、リンク プレビューを表示しないように求められます。
  * GitHub アプリは、リンクが共有されているチャネルにありません。 「[スラッシュ コマンドを使用して Slack でGitHubを操作する](#using-slash-commands-to-interact-with-github-in-slack)を参照してください。

## プルリクエストレビューのリマインダーをスケジュール設定する

Slack で pull request レビューのリマインダーをスケジュールできます。 リマインダーは、 GitHub アプリを使用して直接メッセージで直接送信することも、 GitHub アプリが存在するチャネルに送信することもできます。 たとえば、割り当てられているすべての未解決の問題を含め、平日の午前 10 時に直接メッセージでアラームを送信するようにスケジュールできます。

スケジュールされたリマインダーは、自分、チーム、または組織全体に対して構成できます。 詳細については、以下を参照してください。

* [スケジュールされたリマインダーの管理](/ja/subscriptions-and-notifications/how-tos/managing-your-scheduled-reminders)
* [予定されたリマインダーをチームで管理する](/ja/organizations/organizing-members-into-teams/managing-scheduled-reminders-for-your-team)
* [組織のスケジュール済みリマインダーを管理する](/ja/organizations/managing-organization-settings/managing-scheduled-reminders-for-your-organization)