GitLabの統合
0はじめに
GitLab Integrationは、XNUMXつのEasyProjectプランのいずれかに追加できるアドオンです。
プラグインの目的は、Easy ProjectのGitLabからの重要なデータを集約して、開発アクティビティのレポート、評価、およびプレゼンテーションを支援し、ソフトウェア開発プロジェクトおよびプロセスに投資する利害関係者の側からの意思決定をサポートすることです。会社。
その機能には、GitLabインスタンス(セルフホストバージョンまたはクラウドバージョンの両方)との非常に単純な初期接続が含まれます。 接続が確立されると、Easy ProjectはGitLabの最も重要なアイテムを構成可能でフィルター可能なリスト(タスクリストと同様)に表示します。 これらのエンティティは次のとおりです。
- リポジトリ
- マージリクエスト
- コミット
- テスト
それらの最も重要な属性を含みます。
統合の重要な要素は、EasyProjectがリポジトリを物理的にコピーしないことです。 コードはGitLabに残ります。
1接続の確立
まず、適切な権限を持つGitLabのユーザーからのアクセストークンが必要です。
- EasyProjectがGitLabにアクセスするユーザーを選択します。 これは、たとえば、誰もログインしない特別なユーザーである可能性があります。 er_integrator
- このユーザーのプロファイルを編集する
- アクセストークンに移動し、すべての権限を選択して パーソナルアクセストークンを作成する
- このトークンをコピーする
これで、Easy Projectに移動して、重要な情報を入力できます - [管理] >> [GitLab統合] >> [検索]に移動します 利用可能な統合 ヒット 構成
- 接続に名前を付け、URLと、前に生成したアクセストークンを入力します。
注: クラウドの場合、例えば https://gitlab.com/my-little-gitlab 、入力するだけ https://gitlab.com/ サブURLなし。 心配する必要はありません。アクセストークンを持つユーザーが表示できるプロジェクトのみを表示できます。 すべてのプロジェクトを非公開に設定すると、他の誰もそれらを見ることができなくなります。
- Save
- それでおしまい! 接続が完了しました。
他のすべてはバックグラウンドで自動的に行われます。 特に
- Easy Projectは、アクセストークンを持つユーザーがメンバーであるすべてのプロジェクト/リポジトリをフェッチします
- これらのリポジトリでは、Webhookが作成されます=> 新製品 コミット、マージリクエスト、テストはEasyProjectに送信されます
1.1接続のトラブルシューティング
Problem A
このGitLabインスタンスのリポジトリが表示されません
不測の事態により、上記の操作が正常に行われない場合があります。 その結果、EasyProjectにこのGitLabインスタンスのリポジトリが表示されない場合があります。
このような場合、数回クリックするだけでリポジトリを手動でインポートできます。
- [管理] >> [Gitlab統合] >> [構成済み統合] >> [名前]をクリックします
- サイドメニューで、をクリックします インポート
- グループを選択します
自己ホスト型のGitLabを使用すると、インスタンス全体を表すグループが作成されます。 スクリーンショットの例のように。
クラウドGitLabを使用すると、すべてのパブリックグループが表示され、おそらくグループを検索する必要があります。 フィールドはオートコンプリートであるため、検索はすばやく簡単です。
- それを選択してクリックすると、見つかったプロジェクト/リポジトリのリストが表示されます
- すべて選択してヒット インポート
Problem B
リポジトリが見つかりましたが、新しいコミット、マージリクエスト、テストがEasyProjectに追加されていません
GitLabからの新しいデータは、GitLabで構成されたWebhookを介してEasyProjectに送信されます。 通常の状況では、それらは自動的に作成されます。 これは、GitLabプロジェクト>>設定>>Webhookで確認できます
アプリケーションへのリンクを含むWebhookがない場合は、作成する必要があります。 繰り返しますが、これは簡単な操作です。
- [管理] >> [Gitlab統合] >> [構成済み統合] >> [名前]をクリックします
- サイドメニューで、をクリックします リポジトリ
- XNUMXつの名前をクリックします
- ソフトウェアの制限をクリック すべての統合を登録する
これにより、正しい形式でWebhookが手動で強制的に作成されます。
2参照キーワード
一般的な接続が構成されたので、Easy ProjectのGitLabからの情報がすでにあり、それを利用できます。 ただし、統合を最大限に活用するために、さらにいくつかの設定があります。 一部はすでにプリセットされており、確認するだけです。
特定のコミットまたはマージ要求を特定のタスクに接続することが可能であり、EasyProjectにアクセスしなくてもこの方法で時間を記録することもできます。 これはいわゆるによって行われます キーワードの参照。 コミットメッセージまたはマージリクエスト名でタスクIDと組み合わせて使用すると、タスクとGitLabアイテムの間にリンクが作成されます。 最も一般的な例は次のとおりです refs#1234 or #1234を閉じます
ほとんどの場合、いくつかの事前設定された参照キーワードがあります。 これが彼らと一緒に働く方法です。
- [その他]メニュー>> GitLab統合>>参照に移動します
- 参照を作成または編集する
- フォーム全体には、ツールチップをナビゲートするのに役立つツールチップが含まれています
覚えておくべき最も重要なルールは次のとおりです。
- タスクはフォーム#IDで識別される必要があります(例:#1234)
- ロギング時間(許可されている場合)は常に@XhYmとして入力されます(例:@ 1h30m)
- コミット時に、参照キーワードを入力する必要があります コミットメッセージ
- マージリクエストでは、参照キーワードをに入力する必要があります 名 マージリクエストの
3ユーザーマッピング
XNUMXつの異なるアプリケーションの統合を扱っているため、それぞれに異なるユーザーのセットがあります。 Easy ProjectのGitLab関連エンティティ(コミットの作成者、マージリクエストのレビュー担当者など)のすべてのユーザー属性+参照キーワードを介してログに記録された時間は、実際のユーザーに接続する必要があります。 では、GitLabのユーザーは実際にEasyProjectにどのようにマッピングされているのでしょうか。
ここでは科学的なことは何もありません。ユーザーは、両方のユーザープロファイルの電子メールを介して単純にマッピングされます。 開発者がGitLabとEasyProjectの両方で同じメールを持っていることを確認してください。
何らかの理由で、XNUMX人のユーザーが両方のアプリケーションでメールを統合できない場合は、ユーザープロファイルのEasyProjectに追加のメールを入力するオプションがあります->ここにGitLabメールを入力します。
4仕組み
最後に、楽しい部分に到達しています。 統合が実際にユーザーに対して行うこと。 [アドオン]セクションの[その他]メニュー(右上)から、GitLab統合のメインページ/ダッシュボードにアクセスします。
デフォルト状態のカスタマイズ可能なページがあり、後でニーズに合わせて調整できます。
また、エンティティを一覧表示したり、設定を入力したりするためのメニューも含まれています。 イントロダクションで述べたように、EasyProjectはGitLabから4つの重要なエンティティを収集して表示します。 それぞれを詳しく見ていきましょう。
4.1リポジトリ
リポジトリリストは、本当に必要ですが、機能的には最も興味深いものではありません。 言及する価値のある便利なフィルターは、 カスタマーサービス、さまざまなGitLabインスタンスが接続されていて、それらの一部のみを検索する必要がある場合に使用します。
リポジトリの名前には、そのグループの名前も含まれます。
リポジトリの詳細
注意:
- (Un-)すべての統合を登録する 1.1章で説明されています。 GitLabプロジェクトでWebhookを作成/削除します。
- 編集 -一部の属性を手動で変更します。 EasyProjectのリポジトリの属性を編集するための高度なデバッグ以外の理由はありません。
- 同期します -リポジトリから現在のすべてのデータをダウンロードします。
- マージリクエスト -このリポジトリ内のすべてのマージリクエストを一覧表示します。
- シーケンステンプレートを選択 -まだ開発中ですが、この堅牢なツールを磨くためにもっと時間を割いてください。
4.2マージリクエスト(コードリクエスト)
XNUMXつの名前がある理由を明確にする必要があります。 マージリクエスト GitLabで使用される用語です。 他のツールの名前は異なります。たとえば、 プルリクエスト。 ツールの統合メカニズムは一般的な方法で記述されているため、サポートを他のGitプラットフォームに拡張できます。 したがって、アプリケーションと画像にラベルが表示される場合があります コードリクエスト、 これは、マージリクエストまたはプルリクエストに適用できる一般的な用語です。
マージリクエストは豊富なエンティティ(すべての重要な属性を格納)であり、Easy Projectで直接それらの上に素敵なリスト、レポート、チャートを作成できます。
マージリクエストの詳細
注意:
- マージリクエストの名前には、参照キーワード「refs」とそれに続くハッシュ#765のタスクIDが含まれています。これが、タスク765にリンクされた理由です。
- をクリックする 同期します このMRのすべてのデータをGitLabから更新します
- すべての属性をマージリクエストのリストに表示できます
- SHAを除くすべての属性は、マージリクエストのリスト/レポート/チャートのフィルターとして使用できます
- マージリクエストリストには、それに関連するテスト(CI / CD)の属性も含まれています。最も重要なのは-テストステータス
4.3コミット
マージリクエストと同様に、コミットのリストも膨大なレポートの可能性を提供します。 コミットリストには、テストの属性も含まれています。
Easy Projectには、Commitに独自の詳細ビューがありません。 単にそれの必要はありません。 URL(またはSHA)をクリックすると、GitLabの詳細に移動します。
4.4テスト
それらは上記の実体に関連して言及されました。 テストには、さまざまなレポートを生成するための独自のリストもあります。 おそらく最も一般的な使用法は、リリース候補などの重要なリポジトリでのテストのライブビューです。
テストにも独自の詳細ビューはありません。クリックするとGitLabに移動します。
4.5相乗効果-タスクからの表示
すべてがどのように連携するかを見てみましょう。
1 このタスクに関連するGitLabエンティティの全体的なステータス。 色(赤、オレンジ、緑)とアイコン(チェックマーク、十字)のさまざまな組み合わせが含まれている場合があります。 一番いいのはもちろん、緑色の枠内の緑色のチェックマークです
組み合わせは、マージ要求のステータスと、コミットおよびマージ要求に関連するテスト結果によって異なります。 その目的は、このタスクの「技術的な」進捗状況を一目で示すことであり、特にQAまたはデリバリーマネージャーに役立ちます。
2 このタスクを参照する変更がコミットされたリポジトリの名前。 リンクをクリックすると、これらのコミットのリストに移動します。
3 このタスクを参照しているマージ要求の名前。 それをクリックすると、EasyProjectのMRの詳細に移動します。
このタスクを参照するコミットのみがあり、マージ要求が欠落している場合、この値は空です。
4 各マージリクエストのステータス。 それをクリックすると、GitLabのマージリクエストの詳細にリダイレクトされます。
このタスクを参照するコミットのみがあり、マージ要求が欠落している場合、この値は空です。
5 マージリクエストで最後に実行されたテストの結果。 それをクリックすると、GitLabのパイプラインに移動します。 クリックできません 未知の ステータス(パイプラインは存在しません)。
このタスクを参照しているコミットのみがあり、マージリクエストが欠落している場合、値は最後のコミットで実行された最後のテスト結果を示します。
6 テストを手動で実行する-クリックしてパイプラインを手動で実行します(GitLabに移動します)。
7 クリックしてマージリクエストを作成します。 コミットのセットしかないが、MRが欠落している場合に便利です(GitLabに移動します)。
4.6タスクからブランチを作成する
(注:11plus.6.0から利用可能な機能)
一部のユーザーは、タスクから直接ブランチを作成すると便利だと感じています。
ボタンはにあります その他のメニュー タスクの詳細について
オートコンプリートフィールドでリポジトリを選択します。 ブランチ名にはタスクIDとサブジェクトが事前に入力されていますが、変更することができます。 ソースブランチはによって事前に入力されています マスター
タスクのGitlab統合セクションの下にブランチがタグとして表示されます。 クリック可能で、GitLabのブランチにつながります。
5権限
現在、XNUMXつの権限があります。
- 表示-[その他]メニューからアドオンにアクセスします
- 管理-ダッシュボードを編集します
グローバル構成には、EasyProject管理者のみがアクセスできます。