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

ScriptEditor で LR の操作を手早く自動化

箕浦 彩香

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 をリリースしたら、ぜひ使ってみてください!