GitLab for Slackアプリ
GitLab 16.2でセルフマネージドインスタンスに導入されました。
GitLab for SlackアプリはネイティブのSlackアプリで、Slackワークスペースにスラッシュコマンドと 通知を提供します。GitLabはあなたのSlackユーザーとGitLabユーザーをリンクし、Slackで実行したコマンドはリンクされたGitLabユーザーによって実行されます。
GitLab for Slackアプリのインストール
前提条件:
- Slackワークスペースにアプリを追加するには、適切な権限が必要です。
- セルフマネジメントのGitLabでは、管理者がインテグレーションを有効にする必要があります。
GitLab 15.0以降では、GitLab for Slackアプリは細かい権限を使用します。機能に変更はありませんが、アプリを再インストールする必要があります。
プロジェクトインテグレーション設定から
GitLab for Slackアプリをプロジェクトインテグレーション設定からインストールするには:
- 左のサイドバーで「検索」または「移動」を選択してあなたのプロジェクトを検索します。
- 設定]>[インテグレーション]を選択します。
- GitLab for Slackアプリを選択します。
- GitLab for Slackアプリのインストールを選択します。
- Slack の確認ページで、Allow を選択します。
Slackワークスペース内のアプリを最新バージョンに更新するには、GitLab for Slackアプリの再インストールを選択することもできます。
Slackアプリディレクトリから
GitLab.comでは、Slack App DirectoryからGitLab for Slackアプリをインストールすることもできます。
Slack App DirectoryからGitLab for Slackアプリをインストールするには:
- GitLab for Slackのページにアクセスしてください。
- SlackワークスペースとリンクするGitLabプロジェクトを選択します。
GitLab for Slackアプリをアップデートします。
GitLabがGitLab for Slackアプリの新機能をリリースした場合、新機能を使うためにアプリを手動でアップデートする必要があるかもしれません。
GitLab for Slackアプリをアップデートするには:
- 左のサイドバーで、Searchを選択するか、またはGo toを選択して、GitLab for Slackアプリが設定されているプロジェクトを探します。
- 設定]>[インテグレーション]を選択します。
- GitLab for Slackアプリを選択します。
- GitLab for Slackアプリの再インストールを選択します。
GitLab for Slackアプリがインテグレーションを使用しているすべてのプロジェクトに対して更新されます。
あるいは、インテグレーションを再度設定することもできます。
スラッシュコマンド
スラッシュコマンドを使って、GitLabの一般的なオペレーションを実行することができます。<project>
をプロジェクトのフルパスに置き換えてください。
GitLab for Slackアプリの場合:
- 最初のslashコマンドを実行する際に、GitLab.comでSlackユーザーを作成する必要があります。
- スラッシュコマンド用に短いプロジェクトエイリアスを作成することができます。
自己管理型 GitLab 上のSlack スラッシュコマンド、Mattermost スラッシュコマンド、ChatOps の場合は、/gitlab
をインテグレーション用に設定したスラッシュコマンドトリガー名に置き換えてください。
以下のスラッシュコマンドが利用可能です:
コマンド | 説明 |
---|---|
/gitlab help | 利用可能なすべてのスラッシュコマンドを表示します。 |
/gitlab <project> issue new <title> Shift+Enter <description>
| タイトル<title> および説明<description> で新しいイシューを作成します。 |
/gitlab <project> issue show <id> | イシューをID<id> で表示します。 |
/gitlab <project> issue close <id> | ID<id> のイシューをクローズします。 |
/gitlab <project> issue search <query> |
<query> に一致するイシューを5つまで表示します。 |
/gitlab <project> issue move <id> to <project> | ID<id> のイシューを<project> に移動します。 |
/gitlab <project> issue comment <id> Shift+Enter <comment>
| ID<id> を持つイシューに、コメント本文<comment> を持つ新しいコメントを追加します。 |
/gitlab <project> deploy <from> to <to> |
<from> 環境から<to> 環境にデプロイします。 |
/gitlab <project> run <job name> <arguments> | デフォルトブランチ上でChatOpsジョブ<job name> を実行します。 |
/gitlab incident declare | Slack(ベータ版)から新しいインシデントを作成するためのダイアログを開きます。 |
deploy
スラッシュコマンド
環境にデプロイするために、GitLabはパイプラインからデプロイ手動アクションを探そうとします。
与えられた環境に対してアクションが一つしか定義されていない場合は、それがトリガーされます。複数のアクションが定義されている場合、GitLabはデプロイ先の環境名にマッチするアクション名を探そうとします。
一致するアクションが見つからない場合、コマンドはエラーを返します。
スラッシュコマンド用のプロジェクトエイリアスの作成
デフォルトでは、スラッシュコマンドはプロジェクトのフルパスを想定しています。GitLab for Slack アプリでより短いプロジェクトエイリアスを作成するには、次のようにします:
- 左のサイドバーで「検索」または「移動」を選択してあなたのプロジェクトを検索します。
- 設定]>[インテグレーション]を選択します。
- GitLab for Slackアプリを選択します。
- 現在のプロジェクトエイリアスが表示されます。この値を編集するには、Editを選択します。
- 希望のエイリアスを入力し、Save changesを選択します。
Slackの通知
GitLab 15.9 で導入されました。
Slack通知により、GitLabは特定のGitLabイベントに対してSlackワークスペース・チャンネルにメッセージを送ることができます。
通知の設定
Slackの通知を設定します:
- 左のサイドバーで、Searchを選択するか、GitLab for Slackアプリがインストールされているプロジェクトを検索してください。
- 設定]>[インテグレーション]を選択します。
- GitLab for Slackアプリを選択します。
- Triggerセクションで、Slackで通知を受け取りたいGitLabイベントごとにチェックボックスを選択します。全リストは通知イベントをご覧ください。
- 選択したチェックボックスごとに、通知を受け取るチャンネル名を入力してください(例:
#my-channel
)。- 複数のSlackチャンネルに通知を送信するには、最大10個のチャンネル名をカンマ区切りで入力します(例:
#channel-one, #channel-two
)。
チャンネルが非公開の場合は、GitLab for Slackアプリも非公開チャンネルに追加する必要があります。 - 複数のSlackチャンネルに通知を送信するには、最大10個のチャンネル名をカンマ区切りで入力します(例:
- Notify only broken pipelinesチェックボックスを選択して、失敗したパイプラインのみに通知するようにします。
- 通知を送信するブランチ] ドロップダウン リストから、通知を受信するブランチを選択します (イベントに関連する場合)。
- 通知を受け取るラベル]テキストボックスを空白のままにしてすべての通知を受け取るか、通知を受け取るイシューまたはマージリクエストのラベルを追加します。
- 変更を保存を選択します。
これで、SlackワークスペースがGitLabのイベント通知を受け取れるようになりました。
非公開チャンネルに通知を受信
非公開のSlackチャンネルに通知を受け取るには、GitLab for Slackアプリをチャンネルに追加する必要があります:
-
@GitLab
と入力してEnterを押すことで、チャンネルでアプリについて言及します。 - チャンネルに追加を選択します。
通知イベント
Slackの通知イベントには以下のものがあります:
イベント名 | 説明 |
---|---|
プッシュ | リポジトリにプッシュします。 |
イシュー | イシューを作成、更新、クローズします。 |
機密イシュー | 機密イシューが作成、更新、クローズされました。 |
マージリクエスト | マージリクエストが作成、更新、マージされました。 |
注意 | コメントが追加されます。 |
コンフィデンシャルノート | 秘密メモを追加します。 |
タグプッシュ | 新しいタグがリポジトリにプッシュされました。 |
パイプライン | パイプラインのステータスが変更されました。 |
Wikiページ | Wiki ページが作成または更新されました。 |
デプロイ | デプロイが開始または終了します。 |
アラート | 新しい固有のアラートが記録されます。 |
グループ公開 | グループが公開コンテキストで言及されます。 |
非公開でのグループ言及 | グループが内密に言及されること。 |
脆弱性 | 新しい固有の脆弱性が記録されます。 |
トラブルシューティング
GitLab for Slack アプリがインテグレーション一覧に表示されません。
GitLab for Slackアプリがインテグレーション一覧に表示されない場合があります。GitLab for Slackアプリをセルフマネージドインスタンスで利用するには、管理者がインテグレーションを有効にする必要があります。GitLab.comでは、GitLab for Slackアプリはデフォルトで利用可能です。
GitLab for Slackアプリはプロジェクトレベルでのみ有効です。グループとインスタンスレベルでのアプリのサポートはイシュー 391526 で提案されています。
プロジェクトまたはエイリアスが見つかりません。
Slackのコマンドの中には、プロジェクトのフルパスまたはエイリアスが必要なものがあり、プロジェクトが見つからない場合は以下のエラーで失敗します:
GitLab error: project or alias not found
回避策として
- プロジェクトのフルパスが正しいこと。
- プロジェクトのエイリアスを使用している場合、エイリアスが正しいかどうか。
- GitLab for Slackアプリがプロジェクトで有効になっています。
スラッシュコマンドは Slack で/gitlab failed with the error "dispatch_failed"
を返します。
スラッシュコマンドがSlackで/gitlab failed with the error "dispatch_failed"
。このイシューを解決するには、管理者がセルフマネージドインスタンスでGitLab for Slack アプリの設定を適切に行ったことを確認してください。
チャンネルに通知が届きません
Slackチャンネルへの通知が届かない場合は、以下を確認してください:
- 設定したチャンネル名が正しいかどうか。
- チャンネルが非公開の場合、GitLab for Slack アプリをチャンネルに追加しました。