BizRobo!の運用を円滑にするためのコミットメッセージ活用のすゝめ

## はじめに

ロボットを運用・管理していると業務変更によりロボットを更新したり、不具合対応で修正したりと運用中のロボットに手を加える機会に遭遇します。

ロボットを修正する際にはロボットの仕様書や設計書を改訂し「修正履歴」を書き加えると思います[^1]が、`修正内容が細かく仕様書や設計書を改訂しない`場合や、`障害対応優先でロボットを修正したままドキュメントの更新が漏れてしまう` 場合があると思います。

こういった隙間や漏れを限りなく少なくするためには、ドキュメント→ロボットを不可分として一連の流れの中でメンテナンスしていくのが理想的だと思います。

その手段としてドキュメントとロボットの同期や自動生成など、今後重要になってくるテーマもあると思いますが、今回はロボットのManagement Console 登録時に一連の動作として組み込まれているコミットメッセージについて紹介します。
![Shutterstock_379655005.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3090491/a55f5229-54c1-e2dd-81fa-349a5c85f51e.png)

## コミットメッセージとは

コミットメッセージは BizRobo! v10.7 から導入された機能です。
マニュアルを検索してもそれ自体の説明はなく、Management Console のリポジトリ解説ページ（`ロボット` `タイプ` `スニペット` `リソース`）の各所に

> **コミット メッセージ**
> コミットについて説明した概要。

といった記述が見つかるのみです。

というのも `コミット` という用語自体がBizRobo!特有のものではなく、ソフトウェア開発においてソースコードなどを管理するシステムの機能[^2]として知られているからで、「変更したソースコードをリポジトリに対して確定する」ことを意味します。
BizRobo! においては Management Console へロボットやスケジュールを登録する意味で使われます。

以下、コミットメッセージを設定できる対象です。
| 対象 | タイミング | 設定場所 |
|:-:|:-|:-:|
| リポジトリ  | Management Console へ `ロボット` `タイプ` `スニペット` `リソース` `OAuth` を登録する時| Design Studio<br/>Management Console |
| スケジュール  | `スケジュール` を登録する時  |Management Console |

https://docs.github.com/ja/pull-requests/committing-changes-to-your-project/creating-and-editing-commits/about-commits

## コミットメッセージが活きるケース

補助的に役立つという感じで物足りなさはあります、以下のようなケースが考えられます。

### Case#1 定期的なロボットの見直しや〇〇対応時の範囲確認

個別のロボット保守/修正ではなく、対向アプリケーションの変更/バージョンアップによる複数ロボットの修正や、組織変更・業務の見直しといった外部要因によるロボット一式の対応など、プロジェクト化した変更に対する更新内容をメッセージに残しておくことで台帳としてのレポジトリの見通しがよくなります[^3]。

### Case#2 バグトラッキングシステムとのID連携

業務部門開発のロボットを運用代行していたりサービスとしてロボットを業務部門へBPO提供している場合、`Redmine` や `Backlog`、`Kintone` などチケット管理システムを使ってタスクの管理をします。
ロボットの障害報告や修正依頼による対応が具体的なロボットの修正と紐づく場合には対象の `チケットID` をコミットメッセージに付加することで、他の担当者が差分を調べるときにも具体的な修正の背景や意図などをたどることに役立ちます。


### Case#3 関係者間での変更内容の共有

他人が開発したロボットの運用含めロボットの運用管理をチームで行っている場合、各ロボットやスケジュールにコミットメッセージが残っていることで自身が関わっていないロボットに対しても直接的に変更状況が把握でき、障害発生時にゼロから状況確認をする手間が省けます。


## コミットメッセージの利用方法

:::note warn
以降、基盤・運用セクションで利用中の BizRobo! v11.3.0.2 を前提に記載します。
:::

#### 1．コミットメッセージの書き方周知

メッセージを読むことで安定して情報が理解できるように、記述の方法やお約束事を決めて周知します。
詳細については既出のいい記事を見つけたので本稿では記載しませんが、最低限以下の視点については含めるようにしたいですね。

##### コミットメッセージには「何を」と「なぜ」を書く
記事の内容と同じように、「何を」と「なぜ」以外は特にメッセージになくてもいいと思いますが、粒度についてはロボットの場合、プログラミング開発よりも大きくなってしまうため、「何を」が複数記載されることも許容範囲です。

##### 接頭語を付けてコメントの区分を分かりやすくする
記事の中で挙げられているものよりいくつか少な目として、5つくらいはあった方がよいでしょう。

| 接頭語 | 説明 |
|:-:|:-|
| 追加:  |処理や仕様の追加|
| 更新:  |処理や仕様の変更|
| 削除:  |処理や仕様の削除|
| 修正:  |不具合対応|
| 改善:  |不要な処理の見直し、リファクタリング|

##### その他
下記の記事を参考により具体化する。

https://www.tam-tam.co.jp/tipsnote/program/post16686.html

https://zenn.dev/shotaro/articles/2022-04-20-0000


#### 2．Management Console 登録時のメッセージ設定

下図の通り Design Studio から `Management Consoleへロボットをアップロード` 機能でロボットファイル一式を登録する際に設定します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3090491/f3b907b6-8895-5fa3-ed68-843cfee242ad.png)

:::note info
Design Studio からロボットをアップロードする場合、 `ベーシックエンジンロボット` のタブから実施することにより `ロボット` や `タイプ` などの依存関係にあるファイル一式がManagement Consoleへアップロードされます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3090491/f5d6d245-88d9-0955-2b0b-78788aa99f13.png)

依存関係に拠らず特定のファイルのみManagement Consoleへ登録したい場合には、直接Management Consoleのレポジトリに個別ファイルを登録します。
その際にもコミットメッセージの入力は求められますので、忘れず記入するようにしましょう。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3090491/85569a74-97d4-cdda-1883-03eca38d2c3f.png)
:::

#### 3．Management Console からの参照

Management Console の 「リポジトリ」 > 「ロボット」「タイプ」「スニペット」「リソース」「OAuth」 各ページ内で下図のように表示されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3090491/71ee1350-f2ed-6256-e20d-f836054c9a2a.png)

:::note warn
デフォルトの状態で `コミット メッセージ` は非表示項目になっています。下図のように `列` アイコンをクリックし表示されるプルダウンから `コミット メッセージ` を選択して表示状態としてください。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3090491/6e15f8d3-5871-a483-928a-589076ea204b.png)
:::

## コミットメッセージ導入時の注意

Management Console に保存されるコミットメッセージは直近の変更によるものに限ります。
過去のコミットメッセージも含めて履歴情報を管理したい場合には別途 `ロボットライフサイクルマネジメント` 機能をセットアップして `Git` （GitHubやGitLabなど）と連携する必要があります。
その話はまた別の機会に。

## まとめ

ロボットを運用管理するにあたり、野良ロボット化を防ぐためにも取りこぼしなくロボットの最新情報は把握しておきたいなと思います。



[^1]:担当者一人ですべてのロボットを開発・運用している場合や、組織で開発・運用している場合でも小さいロボットに対してはドキュメントを作成しない場合はあると思います。

[^2]:もしかしたらGit特有の用語なのかもしれませんが、そのあたりは割愛します。

[^3]:既存のロボットに対する変更ではなく、ロボットを新たに作成して登録する場合にも `新規作成` とコミットメッセージが添えてあると助かります。