GitLab for Slackアプリ

GitLab 16.2でセルフマネージドインスタンスに導入されました。

note
このページには、GitLab.comのGitLab for Slackアプリの設定に関する情報が含まれています。管理者向けのドキュメントはGitLab for Slack アプリの管理 をご覧ください。

GitLab for SlackアプリはネイティブのSlackアプリで、Slackワークスペースにスラッシュコマンドと 通知を提供します。GitLabはあなたのSlackユーザーとGitLabユーザーをリンクし、Slackで実行したコマンドはリンクされたGitLabユーザーによって実行されます。

GitLab for Slackアプリのインストール

前提条件:

GitLab 15.0以降では、GitLab for Slackアプリは細かい権限を使用します。機能に変更はありませんが、アプリを再インストールする必要があります。

プロジェクトインテグレーション設定から

GitLab for Slackアプリをプロジェクトインテグレーション設定からインストールするには:

  1. 左のサイドバーで「検索」または「移動」を選択してあなたのプロジェクトを検索します。
  2. 設定]>[インテグレーション]を選択します。
  3. GitLab for Slackアプリを選択します。
  4. GitLab for Slackアプリのインストールを選択します。
  5. Slack の確認ページで、Allow を選択します。

Slackワークスペース内のアプリを最新バージョンに更新するには、GitLab for Slackアプリの再インストールを選択することもできます。

Slackアプリディレクトリから

GitLab.comでは、Slack App DirectoryからGitLab for Slackアプリをインストールすることもできます。

Slack App DirectoryからGitLab for Slackアプリをインストールするには:

  1. GitLab for Slackのページにアクセスしてください。
  2. SlackワークスペースとリンクするGitLabプロジェクトを選択します。

GitLab for Slackアプリをアップデートします。

GitLabがGitLab for Slackアプリの新機能をリリースした場合、新機能を使うためにアプリを手動でアップデートする必要があるかもしれません。

GitLab for Slackアプリをアップデートするには:

  1. 左のサイドバーで、Searchを選択するか、またはGo toを選択して、GitLab for Slackアプリが設定されているプロジェクトを探します。
  2. 設定]>[インテグレーション]を選択します。
  3. GitLab for Slackアプリを選択します。
  4. GitLab for Slackアプリの再インストールを選択します。

GitLab for Slackアプリがインテグレーションを使用しているすべてのプロジェクトに対して更新されます。

あるいは、インテグレーションを再度設定することもできます。

スラッシュコマンド

スラッシュコマンドを使って、GitLabの一般的なオペレーションを実行することができます。<project> をプロジェクトのフルパスに置き換えてください。

GitLab for 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 アプリでより短いプロジェクトエイリアスを作成するには、次のようにします:

  1. 左のサイドバーで「検索」または「移動」を選択してあなたのプロジェクトを検索します。
  2. 設定]>[インテグレーション]を選択します。
  3. GitLab for Slackアプリを選択します。
  4. 現在のプロジェクトエイリアスが表示されます。この値を編集するには、Editを選択します。
  5. 希望のエイリアスを入力し、Save changesを選択します。

Slackの通知

GitLab 15.9 で導入されました

Slack通知により、GitLabは特定のGitLabイベントに対してSlackワークスペース・チャンネルにメッセージを送ることができます。

通知の設定

Slackの通知を設定します:

  1. 左のサイドバーで、Searchを選択するか、GitLab for Slackアプリがインストールされているプロジェクトを検索してください。
  2. 設定]>[インテグレーション]を選択します。
  3. GitLab for Slackアプリを選択します。
  4. Triggerセクションで、Slackで通知を受け取りたいGitLabイベントごとにチェックボックスを選択します。全リストは通知イベントをご覧ください。
  5. 選択したチェックボックスごとに、通知を受け取るチャンネル名を入力してください(例:#my-channel )。
    • 複数のSlackチャンネルに通知を送信するには、最大10個のチャンネル名をカンマ区切りで入力します(例:#channel-one, #channel-two )。
    note
    チャンネルが非公開の場合は、GitLab for Slackアプリも非公開チャンネルに追加する必要があります。
  6. Notify only broken pipelinesチェックボックスを選択して、失敗したパイプラインのみに通知するようにします。
  7. 通知を送信するブランチ] ドロップダウン リストから、通知を受信するブランチを選択します (イベントに関連する場合)。
  8. 通知を受け取るラベル]テキストボックスを空白のままにしてすべての通知を受け取るか、通知を受け取るイシューまたはマージリクエストのラベルを追加します。
  9. 変更を保存を選択します。

これで、SlackワークスペースがGitLabのイベント通知を受け取れるようになりました。

非公開チャンネルに通知を受信

非公開のSlackチャンネルに通知を受け取るには、GitLab for Slackアプリをチャンネルに追加する必要があります:

  1. @GitLab と入力してEnterを押すことで、チャンネルでアプリについて言及します。
  2. チャンネルに追加を選択します。

通知イベント

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

回避策として

スラッシュコマンドは Slack で/gitlab failed with the error "dispatch_failed" を返します。

スラッシュコマンドがSlackで/gitlab failed with the error "dispatch_failed" 。このイシューを解決するには、管理者がセルフマネージドインスタンスでGitLab for Slack アプリの設定を適切に行ったことを確認してください。

チャンネルに通知が届きません

Slackチャンネルへの通知が届かない場合は、以下を確認してください:

アプリのホームが正しく表示されません。

アプリのホームが正しく表示されない場合は、アプリが最新であることを確認してください。