ドキュメント

リポジトリおよびブランチ設定

どのブランチからCoroidが作業を開始し、プルリクエストがどこにマージされ、ブランチ名がどのように付けられるか。

各プロジェクトは1つのリポジトリを参照します。そのリポジトリ設定により、Coroidが あなたのブランチモデルとどのように連携するかが決まります。

プロジェクトの設定画面で確認できます。

同期モードまたはローカルのみ

リポジトリモードによって、CoroidがGitHubまたはGitLabに書き込み可能かどうかが決まります。

  • 同期モード(デフォルト):Coroidは各タスクのブランチをプッシュし、ベースブランチに対してプルリクエストを開きます。
  • ローカルのみ:Coroidはリポジトリからクローンおよびプル操作を行いますが、書き込みは行いません。リモートへのプッシュ、ブランチの作成、プルリクエスト、コメント、レビュー、チェック実行、Webhook、マージ、パイプライン実行は一切行われず、ブランチ、コミット、レビュー、QA、プレビューはすべてCoroid内で処理されます。

同期済み

CoroidGitHub
  • GitHub からデータを取得
  • ブランチをプッシュし、プルリクエストを作成

ローカルのみ

CoroidGitHub
  • GitHub からデータを取得
  • データのプッシュ、コメントの投稿、プルリクエストの作成は行いません
  • Coroid 自体の Git からブランチを取得
ローカル専用モードでは、実際のリポジトリで Coroid を試すことができます。このモードでは GitHub からデータを読み取り、すべてのブランチ、コミット、レビュー内容を Coroid 内に保持します。プルリクエストが必要になったら同期を開始してください。

モードはプロジェクト作成時に選択し、プロジェクトの設定画面で変更できます。ローカルのみのプロジェクトでは、ローカルのみがリポジトリ名の横に表示されます。

ローカルのみモードは、実際のリポジトリでCoroidを試すための安全な方法です。タスクや計画はレビューまで実行されます。pull requestが存在する場所には、レビュー結果がCoroid内に保持され、1つのアクションである同期を開始を実行します。承認を行うには同期済みのプロジェクトが必要です。なぜなら承認とはベースブランチへのマージを意味するからです。計画内では、タスクは引き続きCoroid内の計画用ブランチでまとめられます。Coroidが保持するベースブランチのコピーはリモートのものと同一なので、pull requestを開かない限り何もベースブランチに届くことはありません。

自分のマシンで作業内容を確認するには、クローンおよびエクスポートをリポジトリ設定で選択し、アクセストークンを作成した上で、Coroid自身のGitからブランチを取得します:

git remote add coroid https://coroid@git.coroid.ai/git/<project-id>.git
git fetch coroid

同期を開始を実行するとプロジェクトが同期モードに切り替わります。以降、新しい作業内容がプッシュされてプルリクエストが生成されます。すでにCoroid内に保持されている作業内容はそのまま残ります。レビューページから該当のpull requestを開いてください(pull requestを作成してタスクを生成し、pull requestを開くことで計画を生成します)。ローカルのみモードに戻すと、即座に反映されます。

ローカルのみモードでは、トークンのスコープに関係なくリポジトリへの書き込みは一切許可されません。接続可能な権限があってもCoroidは書き込みを拒否します。このモードはプロジェクトのブランチ設定に従って動作し、設定の移植性。

ベースブランチ

Coroidは指定したベースブランチから作業を開始し、そこに対してプルリクエストを送信します。 デフォルトではリポジトリのデフォルトブランチが使用されます。

別の場所にマージする場合は変更してください — 例えば「develop」ブランチやリリース用ブランチ、 長期間維持される統合ブランチなどです。この設定を誤ると最も一般的な設定ミスとなり、誰もレビューしないブランチを対象としたプルリクエストが作成されてしまいます。

ターゲットブランチが変更された場合

プランには作業開始時のベースブランチのコミットが記録されます。プランのpull requestがマージされる前にベースブランチが変更されると、Coroidはマージを保留します。詳細はベースブランチが更新された場合。この設定により、次に実行される処理が決まります:

  • レビュー待ちにする(デフォルト)— 誰かが新しいコミットを確認し、承認するか、Coroidにマージと再検証を依頼します。
  • マージして再検証する— Coroidは変更内容をプランのレーン用ブランチにマージし、開発者・QA・レビュアーの工程を待たずに再度実行します。これにはエージェントの稼働時間が消費されます。マージまたは再検証が失敗した場合は、最終的な判断は人間が行います。

いずれの場合も、プランが現在のベースブランチと照合されるか、人間がその差異を承認するまでマージは行われません。この設定はプロジェクトのブランチ設定に含まれるため、設定の移植性。

作業用ブランチ

各タスクはそれぞれ独自のブランチで作業します。タスクごとにブランチが作成され、作業が完了するとプッシュされます(ローカルのみのプロジェクトではブランチはCoroid内に保持されます)。これにより、同時に実行される2つのタスクが同じブランチを共有することはなく、互いの進行中の作業を参照できません。

ベースブランチに直接コミットされることは一切ありません。これは設定項目ではなく、Coroidの動作仕様です。

タスクごとに1つのブランチ。2つのタスクが同じブランチを共有することはありません。

必要なレビューやステータスチェックは従来通り適用されます。

マージ先 main

各タスクはベースブランチから独立した専用ブランチで作業し、結果は pull request として出力され、既存のブランチ保護ルールに従って処理されます。

ブランチ保護

既存のブランチ保護ルールはそのまま適用されます。Coroidは通常のプルリクエストを作成するため、必須のレビューやステータスチェック、マージ可能なユーザーの制限などは、チームで設定している通りに機能します。

保護ルールで署名付きコミットや特定のステータスチェックが求められており、それらをCoroidが満たせない場合、pull requestが開いたプルリクエストはマージ不可能な状態になります。これはCoroidの不具合ではなく、あなたの設定が正しく機能している証拠です。

クリーンアップ

pull requestの処理がマージまたはクローズされた後、完了した作業用のブランチを削除できます。監査やリリースツールでブランチ名を利用している場合は、有効にする前にこの点を確認してください。

接続の変更

基となるリポジトリの接続が変更された場合 — 例えばトークンの更新、アプリの再インストール、リポジトリ名の変更など — プロジェクトの識別情報や履歴は保持されます。新しいプロジェクトを作成するのではなく、新しい接続を指すよう設定を変更してください。そうすればコンテキスト、設定、過去の作業内容を失うことはありません。

リリースパイプライン設定

ベースブランチは、Coroidがプルリクエストを開く先を決定します。デプロイ処理には別のプロジェクトが使用されます。リリース設定内容には、デプロイ先の環境やその準備状況ポリシー、さらに必要に応じてGitHub ActionsやGitLabパイプラインの参照先およびデプロイジョブが含まれます。該当する参照先は、Coroidが実行を要求する前にリリースで固定されたコミットに解決される必要があります。パイプラインがデプロイ結果を報告できるよう、環境スコープ内のコールバック認証情報を設定してください。リポジトリ接続だけでは、何がデプロイされたかを確認することはできません。外部パイプラインは、Coroidからのディスパッチを有効化しなくてもイベントを報告できます。