メインコンテンツまでスキップ

近藤 匠真

Lightning Review (以下、LR)開発チーム、入社1年目の近藤です!
新人です!!と言いたいところですが、気付けばもう次の新人が入社する季節となりました。あっという間です。
日々、 頼れる LR メンバーの先輩たちに囲まれ、楽しく開発しています。ほんと感謝しかないです。😭
自分もそんな先輩になれるように努めます!!!

さて今回は、LR 2.5 に搭載された新機能「 ScriptEditor 」の便利な活用例として、誰でも簡単にできるスクリプトのコマンドライン実行を紹介します!

とはいえ、何のことやら??と思う方もいらっしゃると思います。
以前のブログでは、 ScriptEditor で LR の操作を自動化できることをご紹介しました。  
実は、バッチファイルを用意することで、 ScriptEditor を起動しなくても、作成したスクリプトを実行できてしまうんです!  
今回は、「たった10行のコードを書くだけで、指摘を重大度"高"でフィルタする機能が作成できて、いつでも実行できる!」ところをお見せします。
実際に作成したスクリプトを、バッチファイルにより実行している様子がこちらです。

スクリプトのコマンドライン実行のデモ画像

では実際に、上記画像の重大度"高"でフィルタするスクリプトを ScriptEditor 上で作成していきましょう。

大まかな流れは以下のようになります。
1 レビューファイルに関連する指摘の一覧を取得
2 指摘情報から重大度が高の指摘IDを取得
3 取得した指摘でフィルタ

まずアクティブなレビューウインドウを取得して LR への操作を可能にします。
下記画像のようにインテリセンスが効いているので、わざわざ公開されている LR の API を見に行かなくとも必要な情報を取得できます。

スクリプトのインテリセンス

次に、フィルタするために指摘の一覧を取得します。
review.GetAllIssues() で指摘の一覧を取得できます。

そして、指摘の一覧から重大度高の指摘IDを取得します。
インテリセンスをみると「重大度 本プロパティの・・・ Low 低 Middle 中 High 高」と表示されています。
従って、issue.Importance が High に一致する指摘の ID を取得すればよいですね。
重大度の情報

もし、優先度高によるフィルタを作成したいなと考えれば、issue.Priority が High に一致する指摘の ID を取得すればよいです。
優先度の情報

このようにインテリセンスを活用することで、簡単にフィルタしたい指摘を選択できます。
優先度"高"かつ重大度"高"のフィルタなど、用途に合ったオリジナルフィルタも作成できますね!
最終的に完成したコードは以下。

// アクティブなウインドウのレビューを取得するvar review = App.ActiveReviewWindow.Review;
 // 重大度高の指摘のIDをカンマ区切りの文字列として設定するvar issueIds = string.Empty;foreach(var issue in review.GetAllIssues()){ if (issue.Importance == "High") {  issueIds += "," + issue.Id; }}
// フィルタを適用するApp.ActiveReviewWindow.ApplyIdFilter(issueIds);

たった10行のコードでフィルタ機能が作れるのです。ものすごく簡単ですよね。

では、作成したスクリプトを実行するバッチファイルを、作成しましょう。
以下のように、実行したいスクリプトのファイルパスをコマンドラインの引数に設定したバッチファイルを作成します。

set exePath="C:\Program Files (x86)\Denso Create\Lightning Review\LightningReview.exe"%exePath% --run "{作成したスクリプトのファイルパス}"

作成したバッチファイルを任意の場所に保存し、実行すると、冒頭の動画のようなフィルタが可能になります!

ScriptEditor を利用すれば、簡単に LR の操作を自動化できます!
上記の説明を参考に、ぜひ使ってみてください!

以下のリンク先にて、スクリプトのサンプルを公開しています。よろしければこちらもご確認ください。
https://docs.lightning-review.com/help/extensions/script-editor/sample-list

加美川 真由子

Lightning Review (以下、LR)開発チーム、入社3年目の加美川です。
世間はバレンタインデーですね!
美味しそうなチョコレートがたくさんお店に並ぶようになり、私もお昼休みに色々買ってしまいました。
もちろん、全部自分で食べました😋 美味しいから仕方ないですよね?

LR には、GitHub と SVN のリポジトリ内のフォルダとファイルの一覧や、ファイルのアウトライン解析など、構成管理システムで管理している成果物のレビューを簡単に開始する機能があります。
次のバージョンアップでリリース予定の LR2.5 では GitLab にも対応しますので、今回はその機能のご紹介です。
なお、GitLab の SaaS 版(GitLab をクラウドで利用している場合)・Self-managed 版(GitLab をオンプレミスで利用している場合)の両方でお使いいただけます。

GitHub や SVN を利用している場合と同様に、レビュー前にレビュー対象とする GitLab のリポジトリを登録しておきます。
RepositorySettingForGitLab

リポジトリを登録することで、リポジトリ内のフォルダやファイルを LR 上で一覧できるようになります。
レビュー対象のファイルまたはコミットをレビュー対象のドキュメントとして追加することもできます。
追加したドキュメントのリンクには、選択したコミット時点のファイルのURLが設定されており、そのURLのファイルをローカルにダウンロードしてアウトライン解析を自動で行うため、すぐにレビューを始められます。

AddDocumentFromRepositoryFileOrCommit

この機能の便利な使い方は、以前のブログでも紹介しています。ご興味があればこちらもチェックしてみてください。
Lightning ReviewでGitHubとSVNのファイルを選択してレビューを開始
GitHubとSVNのファイルの変更前後のコミットを選択してレビューを開始

今後は、GitHub や SVN に加えて GitLab の成果物も、LR から簡単にレビューを開始できるようになります。
LR 2.5 をリリースしたら、ぜひ使ってみてください!

箕浦 彩香

Lightning Review (以下、LR)開発チーム、入社4年目の箕浦です。
年末年始にしっかり食べて寝たら、2キロも体重が増えてしまいました😨
例年より皮下脂肪がしっかり付いた気がするので、ダイエット頑張らないとと毎日思っています…笑

さて今回は、次のバージョンアップでリリース予定の LR 2.5 に搭載される新機能「ScriptEditor」について紹介します!

新メンバ加入時にだけ行うレビューファイルのテンプレートへのメンバ追加、特定の案件でしか使わない特殊なフィルタや、品質分析のための一時的な指摘情報の集計といった、レビューファイルに対して年に数回あるだけの操作や一時的にしか使わない操作などで、手作業は面倒だから自動化したいと思ったことはありませんか?
自動化するための手段として、LRの拡張機能を自分で開発するという方法もありますが、頻繁に使わない機能を作成するにはハードルが高いかもしれません。

ScriptEditor では LR を操作するためのスクリプトの記述・実行ができるため、LRに関する面倒な手作業を、スクリプトを書くことでボタンひとつで実行できるようになり、業務を効率化できます。
LR の拡張機能で利用できるすべての API を ScriptEditor でも同様に利用でき、インテリセンスが効いて候補が表示されるため、APIに詳しくなくても、スクリプトの記述は簡単です。
さらに、スクリプトはテキストファイルであるため、作成したスクリプトをチームメンバと共有することも手軽にできます。

例として、プロジェクトで利用しているすべてのレビューファイルのテンプレートに、新しく業務配属されたメンバをメンバ一覧に一括で追加するスクリプトを実行する様子を示します。

ScriptEditorのデモのgif画像

上記の Gif 画像内で実行しているスクリプト("テンプレートファイルにメンバを一括追加.csx")を以下に示します。

// 以下に追加したいメンバ名を設定var memberNames = new [] {"近藤"};
// 以下にメンバを追加したいテンプレートファイルがあるフォルダを設定var templateFolder = @"C:\Git\XXX\Docs\エンジニアリング\Current\07_ピアレビュー\Templates";
var directoryInfo = new DirectoryInfo(templateFolder);var files = directoryInfo.GetFiles("*.revx");var service = App.GetReviewFileService();foreach(var file in files){    var review = service.OpenReview(file.FullName);
    foreach(var memberName in memberNames)    {        // メンバ追加        var newMember = review.ReviewSetting.AddMember(memberName);        newMember.Reviewee = true;        newMember.Reviewer = true;        newMember.Moderator = true;    }
    // 保存して閉じる    service.SaveReview(file.FullName, review);    service.CloseReview(review);}

ScriptEditor を利用すれば、お手軽に LR の操作を自動化できます!
LR 2.5 をリリースしたら、ぜひ使ってみてください!

角谷 健太

Lightning Review (以下、LR)開発チーム、入社2年目の角谷です!
今更感がありますが、最近になってリングフィットアドベンチャーを買いました。
毎朝30分ほどやっているのですが、起きてすぐやると体がポカポカするのでいい感じですね💪
ちなみに身体がなまりになまっていたので、毎日筋肉痛と戦っています。イテェ~!

今回は、次のバージョンアップでリリース予定の LR 2.5 に搭載される新機能「LRMerge」について紹介します!

Gitにレビューファイルを格納する場合、複数のユーザーが同じレビューファイルに対して編集してコミットします。
その際にコンフリクトが発生すると、手動で解消してからコミットし直す手間がかかっていました。
LRMergeを利用することで、そのような手間を解消し、他の格納物と同じ管理ができるようになります!

レビューファイルに対するマージツールとして Git に LRMerge を設定すると、レビューファイルがコンフリクトした際に自動でマージを行います。
例えば、Git に格納されたあるレビューファイルに対して、AさんとBさんがそれぞれ指摘を1件追加してコミットした場合、LRMerge がAさんとBさんのそれぞれの編集後のレビューファイルをマージし、最終的に2件の指摘が追加されたレビューファイルをコミットします。
複数のユーザーが同じレビューファイルを編集してコミットしても、それぞれのユーザーの変更を自動でマージできるため、手動で解消する手間なく Git 上のレビューファイルを編集できます。

LRMergeのデモのgif画像

また、同じ指摘の同じフィールドに対してコンフリクトが発生した場合は、自身または相手の変更を採用し自動で解消します。
コンフリクトをどのように解消したかは、以下のようなマージ実行時のログで確認できるため安心です!

LRMergeのログの画像

以上のように、LRMerge を利用すればレビューファイルを手間なく Git 管理できます。
LR 2.5が登場したら、ぜひ使ってみてください!

小島 優介

Lightning Review 開発チームでプレイングマネージャーをしている小島です。

私事ですが、IT技術者向けの月刊誌「Software Design」で連載記事を執筆しています。
連載のテーマ名は「ハピネスチームビルディング」で、チームの皆が主体性を発揮して成長するための様々な知見を紹介しています。
2022年4月号から連載していまして、半年分の記事をWeb上でも公開しました。
以下の記事タイトルの中に、もしも興味のあるものがあれば、読んで参考にしていただけると幸いです。

  1. リモートワークのつらさを共感して楽しいに変える
  2. メンバー間で活発に議論する朝会にしよう
  3. ファシリテーターを皆に任せて楽しい振り返りに
  4. コーチングプログラミングで楽しく成長する
  5. 分報で各自の作業を可視化して皆で協力し合う
  6. 新しいものを試行する風土を作る

ちなみに本誌掲載時は、下図のように楽しそうな雰囲気のイラスト付きでカラー掲載してもらってます。
素敵なイラストをご用意してくださった編集部の方々に感謝です。

software-design