株式会社ネットワールドのエンジニアがお届けする技術情報ブログです。
各製品のエキスパートたちが旬なトピックをご紹介します。

GitとCI/CDに関する知識ゼロのSEが、GitLabのクイックアクションを説明します

皆様こんにちは。SEの小池と申します。

GitLabのマージリクエスト (MR) やイシューにはコメント欄があります。
実はこのコメント欄、特定の書式で文字列を入力すると「クイックアクション」という機能を使って、コメント欄だけでラベルの設定・他のユーザーのアサイン・ウェイトの設定などが一瞬でできるんです。

今回はそんなGitLabのクイックアクションについてご紹介いたします。

本記事の対象の方

  • GitLabのクイックアクションに関する情報を収集中の方。
  • GitLabを日頃から使っているが、クイックアクションをご存じない方。
  • GitLabを日頃から使っているが、クイックアクションを使用したことが無い方。

今回のブログのゴール

このブログのゴールはこちらです。


今回のゴール
  • GitLabのクイックアクションの概要を理解する。

このブログをお読みいただくにあたっての事前ご連絡事項

  • 本記事はSaaS版 GitLab.com (Enterprise Edition 15.6.0-pre) における仕様をベースに記載しております。それ以外のエディションやバージョンではこの記事に記載の通りではない可能性がございます。
  • 本記事のGitLab.comのGUIは日本語にローカライズした状態で掲載しております。それ以外の言語をご利用の方は適宜読み替えてください。

GitLabのクイックアクションとは何か?

クイックアクションとは、GitLabのイシュー・マージリクエスト・エピックで使用可能な機能で、コメント欄に /<特定のコマンド> の形式で特定の文字列を入力することで、普段はGUIのボタンやプルダウンなどで設定する各種項目をコマンドで設定できる機能です。
参考:GitLab quick actions | GitLab

視覚的に説明すると、下図のようにイシュー・マージリクエスト・エピックの画面の右側の各種設定 (赤枠部分) を、コメント欄 (青枠部分) に特定のコマンドを入力して設定する機能です。
(下図赤枠内以外の設定も可能ですが、基本的には赤枠内の設定をコメントに入力したコマンドで設定することが主たる機能です。)

2022/11/14現在、SaaS版 (GitLab.com) と Self-Managed版 (オンプレミス版) の両方で使用可能で、無料版でも使用できます。

既存のイシューにメンバーをアサインする場合を例に挙げます。
通常、既存のイシューにメンバーをアサインするのは、下図のように画面右側 [Assignee] の [編集] をクリックし、プルダウンの検索ボックス もしくは 入力候補からアサインするメンバーを探す必要があります。

これをクイックアクションを使って設定する場合。
既存のイシューのコメント欄に/assign @<アサインしたいユーザー名>を入力して [コメント] をクリックすると、そのメンバーをアサインすることができます。

下は [コメント] クリック後の画面です。
クイックアクションを使用して設定した場合であっても、通常のGUIから設定した場合と何ら違いはなく、正常に特定のユーザーをアサインできていることがわかります。

この様に、本来GUIのボタンやプルダウンを使って設定しなければいけないものを、コメント欄に /<特定のコマンド> の形式で特定の文字列を入力することで設定する方法が、クイックアクションです

クイックアクションでできること

2022/11/14現在、クイックアクションで使用可能なコマンド (設定できるもの) はGitLab Docs (こちら) に一覧が載っています。

なお、クイックアクションはバージョンによってできることが若干異なるため、Self-Managed版 (オンプレミス版) をご利用の場合は、その環境自体のヘルプページを参照したほうが良いです。

Self-Managed版 (オンプレミス版) のクイックアクションのヘルプは、イシュー・マージリクエスト・エピックの各コメント欄の下に表示されている 「Supports Markdown. For quick actions, type /.」の [quick actions] をクリックすることで表示することができます。

クイックアクションのユースケース

筆者が考えたクイックアクションのユースケースを挙げます。
このユースケースは開発経験のない筆者が考えたものなので、良い例ではないかもしれません。すみません。。。

  1. マウスで実施していた設定の簡略化。
  2. クイックアクションでしか使用できない機能を使う。
  3. テンプレートに設定する。
  4. 3rdパーティ製品からコメント欄を使って設定する。

は一番簡単な使用方法で、且つ、慣れてしまえばかなりの時短が期待できます。
日常的な業務で多彩なクイックアクションを華麗に使いこなす‥‥そんな風に筆者もなりたいものです。(遠い目)

②③については詳細を後述致します。

について。
クイックアクションの最大のメリットは、コメントさえ編集できる状況であれば、それ以外の設定もコメント欄から実施できることです。 つまり、Visual Studio Code等のGitLabと連携しているけれどコメント欄しか編集できない3rdパーティ製品であっても、コメント欄以外の設定をすることが可能になります。
開発ツールからコメントは編集できるが、他のラベルやアサインの設定のためにいちいちGitLabのGUIを表示する必要がなくなります。
この使用方法については次回のブログで、VSCodeとの連携と併せてご紹介いたします。

② クイックアクションでしか使用できない機能を使う

クイックアクションの中にはGUIからでは設定できず、クイックアクションでしか設定できないものが存在します。その最たる例が、タイムトラッキングの入力です。

タイムトラッキングはイシュー・マージリクエストで所要時間を入力する機能です。
2022/11/14現在のGitLab.com (GitLab Enterprise Edition 15.6.0-pre) ではGUIから入力できず、クイックアクションを使う必要があります。
GUI上から閲覧できるのにGUI上から入力できないってどゆこと???

このタイムトラッキングのように、そもそもクイックアクションでしか設定できないものを設定したい場合は、クイックアクションの利用が必須となります。

③ テンプレートに設定する

イシュー・マージリクエストを新規作成する場合、そのコメント欄をテンプレート化することができます。
そのテンプレートの中にクイックアクションを仕込んでおくことも可能です。
(コメント欄のテンプレート化についてはこちらのブログに記載しておりますので、よろしければご参照ください。)

例えば以下のように、マージリクエストのテンプレートにマイルストーンを設定するクイックアクションを仕込みます。

テンプレートに仕込んだクイックアクションは、マージリクエスト作成時のコメント欄に反映されます。
この時点で、マージリクエストのマイルストーンのプルダウンでは何も選択していません。
この状態でマージリクエストを作成すると・・・

こんな感じで、コメントに仕込んだクイックアクションの効果でマイルストーンの設定がされます!

このように、イシューやマージリクエストのテンプレートにクイックアクションで仕込むことで、固定値として設定しなければいけないマイルストーンやラベルを、漏れなく設定することができます。

注意点:クイックアクションの内容によって必要なロールが違う

クイックアクションを使う際には、そのユーザーが以下の両方を満たすロールを持っている必要があります。

  • イシュー・マージリクエスト・エピックのコメント欄の編集が可能なロール。
  • クイックアクションで実現する各アクションを実行可能なロール。

上記の1点目しか満たしていないロールでクイックアクションを実行した場合、クイックアクションは失敗します。

例を挙げて説明いたします。
まずここに、公開範囲がパブリックのプロジェクトがあります。

このプロジェクトはパブリックに公開しているため、プロジェクトのメンバーではないユーザーでもイシューを作成でき、コメントも入力できます。

ではここで、このプロジェクトのメンバーではないユーザーで、クイックアクションを使ってこのプロジェクトに既存のラベル [年末年始] 付与をしてみます。

すると、このようにエラーが出てラベル [年末年始] を付与することができませんでした。

このプロジェクトはパブリックに公開しているため、プロジェクトのメンバーではないユーザーでもイシューを作成し、コメントを書くことができます。
しかし、既存のイシューに対してラベルを付与するには、プロジェクトのロールReporter以上が必要になります。

つまり上の例では、プロジェクトのメンバーではないユーザーでもイシューを作成してコメントを書くことができたが、既存のイシューにラベルを付与する権限がなかったので、結果的にラベルを付与するクイックアクションが失敗した、ということが発生しました。

この様にクイックアクション利用時は、コメントを編集することが可能なロール各アクションを実行するのに必要なロール の両方を満たす必要があります

参考:Permissions and roles | GitLab

余談:ちゃぶ台返し!うりゃっ! (╯°□°)╯︵ ┻━┻

完全に余談ですが、クイックアクションの中にはギャグとしか思えないものもあります。
例えば /tableflip <comment> は、任意のコメントの後ろに(╯°□°)╯︵ ┻━┻を付与するだけというクイックアクションです。
ちゃぶ台返しって概念は、海外でも通用するんですね。筆者はかしこさが1上がりました。

他にも/shrug <comment>は任意のコメントの後ろに¯\_(ツ)_/¯を付与できます。
まあ、こちらは日本語の ツ が入っているので、海外ユーザーにはいい機能かもしれません。
しかし日本人なら ツ の入力も簡単!よってあんまり意味ないかも!

いずれも2022/11/14現在、GitLab.comでは使用可能です。
あり得ない納期で仕事を無茶振りをされたときにでもお使いください。
ただし、あまり多用すると同僚との関係悪化を招いたり、ボーナスの査定が下がる‥‥かもしれないのでご注意ください。

最後に

この度はGitもCI/CDもよくわかっていないど素人SEによるGitLab検証ブログをお読みいただき、誠にありがとうございます。
このブログの目標は以下のとおりでしたが、皆さまはいかがでしたでしょうか。


今回のゴール
  • GitLabのクイックアクションの概要を理解する。

クイックアクションを使いこなすことにより、GUIから一つ一つ設定するより速い、テンプレートで利用することによりアサインやラベルの漏れをなくす、コメント編集機能を連携できる3rdパーティ製品からラベルなどの編集が可能になる 等、日常業務で感じていたいちょっとしたストレスを解消できる可能性が有ります。

無くてもいいけど、有った方が断然利便性が増す!それがクイックアクションです。

GitLabをご検討中の方はもちろん、GitLabを現在お使いの方でクイックアクションをご存じない方は、是非お試しいただければと存じます。

この記事がGitLabを触り始めた方の一助となれば幸いにございます。


GitLabに関するお問い合わせは、以下のフォームからお願い致します。
GitLab製品 お問い合わせ

今までのGitLabの検証ブログはこちらです。
GitLab カテゴリーの記事一覧 - ネットワールド らぼ

GitLab操作デモ動画 (基本編) を作ってみました。(音声の録音は自宅でiPhoneのボイスメモ使うという超低クオリティですが…。)
つたない内容ではありますが、ご興味がおありでしたら是非ご視聴いただければと存じます。

www.youtube.com