Coroidは作業を進める際に多くの決定を下します。リクエストが作業として成立するか、どのように構築するか、そしてその結果がお客様に提示するのに十分な品質かどうかです。一部の決定は常に人間の手に委ねられます。マージ処理はその最も明確な例です。
Coroidが下す決定
- リクエストが作業として成立するかどうか 適格性判定重複や既に修正済みの項目、再現できない問題などをチェックします。人が関与しないリクエストの場合、受け入れ処理がお客様の指示に従って決定を下します。 マンデート作業を今すぐ開始するか、後で開始するか、あるいは全く開始しないかを決定します。
- 作業の構築および検証方法計画、コード、テスト、品質ゲート、QA、およびレビューが通過します。詳細はこちら Coroidが自身の作業を検証する方法。
- マージについて、どのような判断を下していたか。Coroidはレビューする各pull requestに対して判断を記録しますが、それを実行することはありません。詳細はこちら Coroidが自身の判断を検証する方法。
人間の判断を伴う決定
| 決定 | 決定を下す者 |
|---|---|
| pull requestをブランチにマージする | GitHubまたはGitLab内の人物、あるいは承認&マージCoroid内で |
| リリースおよびデプロイ | パイプラインを通じた人物、またはCoroid内でのリリースにより |
| 無人作業の目的と予算を指定する | オーナーまたは管理者が発行するマンデート |
| 作業の完了基準を指定する | リクエストを依頼した人物が定める成果物契約 |
| 作業の作成:適格性判定が停止 | 権限を持つ人物がそれでも作業を作成および理由を添えて |
Coroidは決して独自にマージを行わず、そのような設定も存在しません。詳細はこちらマージ処理。
マンデートはマージを担当する者を変更しません
マンデートを利用すれば、個別に依頼しなくても作業を開始できます。ただし、結果が確定するには人の判断が必要です。マンデートで承認された作業は他のタスクと同様の検証プロセスを経て、最終的には人が承認するプルリクエストとして完了します。
マンデートがもたらすのは、監視対象外の作業に対する説明責任です。どのプロジェクトに影響を与えられるか、使用可能な予算額、およびそれに関するすべての決定内容の記録が含まれます。
Coroidが自身の判断を検証する方法
pull requestに対するすべてのCoroidレビューや、マージ可能な状態になったすべてのタスクについて、Coroidはマージを許可された場合に下すであろう判断を記録します。
- 承認する。必要な要素はすべて揃い、問題なし:pull requestの最新コミットに対する品質チェック、Coroidのレビュー、プロバイダーによるチェック、正常なマージ処理、そしてタスクの場合はQA結果とレビュアーの判定がすべて適切です。
- ブロックする。少なくとも1つ以上の要因がブロック理由となります。
- 判断できない。必要な情報が欠落していました。不足した証拠は承認とはみなされません。
この判断結果はpull requestに反映されることも、タスクを変更したりマージしたりすることもありません。現時点ではCoroidにも表示されません。
Coroidは各判断結果を、マージ後の実際の結果と比較します。
- 後から作成されたタイトルが「」というpull request元に戻す…以前の判断を「」と标记します元に戻された;
- 後から作成された「」と記載されたpull requestFixes #npull requestを」と标记しますnとして ホットフィックス済み;
- タスクのレビュー画面の」の下にマージ後の経過組織内の誰でも、マージ済みのpull requestを元に戻された、ホットフィックス済み、または 不具合報告。
pull requestに対する承認が後から元に戻されたり修正されたりした場合、その承認は誤ったものとみなされます。自身のリポジトリにおいても、Coroidは実際の変更内容を意図的に破損させたコピーを用いて、検知能力を測定します。
なぜこの記録を残すのか
「この種の変更をCoroidがマージすることを信頼できるか?」という問いに、根拠に基づいて答えるためです。つまり、承認が誤っていた頻度、どの種類の変更で誤りが生じたか、何例確認されたかといった事実に基づきます。現在はこの記録に基づいて何かが実行されることはありません。もし将来そうなる場合でも、それはオーナーが明確に選択した結果であり、この記録がその判断の根拠となります。