> ## Documentation Index
> Fetch the complete documentation index at: https://docs.corgea.app/llms.txt
> Use this file to discover all available pages before exploring further.

# Harness

> CorgeaとHarness Codeの設定に関する総合ガイド

CorgeaとのHarness Code連携により、Harness Codeでホストされているリポジトリをスキャンし、すべてのプルリクエストに対して自動セキュリティレビューを受け取り、Corgeaプラットフォームから直接コード修正のためのプルリクエストを作成できます。

<Note>
  Corgeaは**Harness Code**（Harnessプラットフォーム内のGitベースのSCM）と連携します。HarnessのCI/CDパイプラインは必要なく、これらとは独立して動作します。
</Note>

<Steps>
  <Step title="Harnessプロフィールを開く">
    Harnessにサインインし、ナビゲーションバー左下のユーザー名をクリックして**Profile Overview**を選択します。

    <Frame>
      <img src="https://mintcdn.com/corgea/TPxz-I5TeuxJbvmj/images/harness-1.png?fit=max&auto=format&n=TPxz-I5TeuxJbvmj&q=85&s=5656fa8b423533f3f7b8826ee51d2b25" style={{ borderRadius: '0.5rem' }} alt="プロフィール Harness を開く" width="599" height="364" data-path="images/harness-1.png" />
    </Frame>
  </Step>

  <Step title="新しいAPIキーを作成する">
    プロフィールの**My API Keys**セクションまでスクロールし、**+ API Key**をクリックして新しいキーを作成します。

    <Frame>
      <img src="https://mintcdn.com/corgea/TPxz-I5TeuxJbvmj/images/harness-2.png?fit=max&auto=format&n=TPxz-I5TeuxJbvmj&q=85&s=9e20ea73c168de45bf4d0d01193bb02d" style={{ borderRadius: '0.5rem' }} alt="新しい Harness API キーを作成する" width="1900" height="958" data-path="images/harness-2.png" />
    </Frame>

    <Tip>
      本番環境では、Harnessで専用の**Service Account**を作成し（Account Settings → Access Control → Service Accounts）、そのアカウントでAPIキーを生成することを推奨します。これにより、Corgeaによる操作の実行主体が明確になり、個々のユーザーに影響を与えずに認証情報をローテーションできます。
    </Tip>
  </Step>

  <Step title="APIキーに名前を付ける">
    キーに`corgea-integration`などの分かりやすい名前を付け、**Save**をクリックします。

    <Frame>
      <img src="https://mintcdn.com/corgea/TPxz-I5TeuxJbvmj/images/harness-3.png?fit=max&auto=format&n=TPxz-I5TeuxJbvmj&q=85&s=14ef59176233197644cdc77a0b1dc655" style={{ borderRadius: '0.5rem' }} alt="Harness APIキーの名前を付けてください" width="1908" height="953" data-path="images/harness-3.png" />
    </Frame>
  </Step>

  <Step title="APIキーにトークンを追加します">
    APIキー自体ではリクエストを認証できません。APIキーに紐づく**トークン**を生成する必要があります。作成したAPIキーを展開し、**+ Token**をクリックします。

    <Frame>
      <img src="https://mintcdn.com/corgea/TPxz-I5TeuxJbvmj/images/harness-4.png?fit=max&auto=format&n=TPxz-I5TeuxJbvmj&q=85&s=d92ca86787479f058e382f7cc6b4be3d" style={{ borderRadius: '0.5rem' }} alt="Harness APIキーにトークンを追加します" width="1902" height="955" data-path="images/harness-4.png" />
    </Frame>
  </Step>

  <Step title="トークンを生成する">
    トークンに名前（例：`corgea-token`）と有効期限を設定し、**Generate Token**をクリックします。

    <Warning>
      Harnessでトークンの値が表示されるのは一度だけです。ダイアログを閉じる前に必ずコピーしてください。後から取得することはできません。
    </Warning>

    <Frame>
      <img src="https://mintcdn.com/corgea/TPxz-I5TeuxJbvmj/images/harness-5.png?fit=max&auto=format&n=TPxz-I5TeuxJbvmj&q=85&s=391993f26605b974160c3199e65467c6" style={{ borderRadius: '0.5rem' }} alt="Harnessトークンを生成します" width="1917" height="953" data-path="images/harness-5.png" />
    </Frame>
  </Step>

  <Step title="トークンをコピーする">
    生成されたトークンをクリップボードにコピーし、ダイアログを閉じます。Harnessトークンの形式は`pat.<accountId>.<tokenId>.<secret>`です。CorgeaはトークンからアカウントIDを自動的に取得するため、別途指定する必要はありません。

    <Frame>
      <img src="https://mintcdn.com/corgea/TPxz-I5TeuxJbvmj/images/harness-6.png?fit=max&auto=format&n=TPxz-I5TeuxJbvmj&q=85&s=1dd5c28913f965e113d48b4a7064a5bc" style={{ borderRadius: '0.5rem' }} alt="生成された Harness トークンをコピーしてください" width="1918" height="957" data-path="images/harness-6.png" />
    </Frame>
  </Step>

  <Step title="Corgea統合ページを開く">
    `corgea.app`でCorgeaにサインインし（セルフホスト環境の場合は`{your-instance}.corgea.app`）、サイドバーから**Integrations**ページを開きます。**Code Repository Integrations**セクションで、**Harness**の横にある\*\*+\*\*ボタンをクリックします。

    <Frame>
      <img src="https://mintcdn.com/corgea/TPxz-I5TeuxJbvmj/images/harness-7.png?fit=max&auto=format&n=TPxz-I5TeuxJbvmj&q=85&s=3867b91d75b7d92b443cfd515aaff1e4" style={{ borderRadius: '0.5rem' }} alt="Corgea統合ページを開く" width="1904" height="991" data-path="images/harness-7.png" />
    </Frame>
  </Step>

  <Step title="連携を追加する">
    Harnessからコピーしたトークンを**API Token**フィールドに貼り付けます。

    デフォルトでは、トークンから参照できる**すべてのHarness組織**のリポジトリが検出されます。Corgeaが参照する組織を制限するには、**Org allowlist**フィールドに組織識別子をカンマ区切りで入力します（例：`default,my-other-org`）。すべての組織を許可する場合は空欄にします。

    <Frame>
      <img src="https://mintcdn.com/corgea/TPxz-I5TeuxJbvmj/images/harness-8.png?fit=max&auto=format&n=TPxz-I5TeuxJbvmj&q=85&s=1edf0fb9ebc9e569ab0028c3bc45bd03" style={{ borderRadius: '0.5rem' }} alt="Harness統合をCorgeaに追加します" width="1915" height="987" data-path="images/harness-8.png" />
    </Frame>
  </Step>

  <Step title="オプション設定">
    デフォルト設定を変更する必要がある場合は、**Optional settings**を展開します。

    * **Name** — 連携を識別しやすくするためのラベル。複数のHarnessアカウントを接続する場合に便利です。
    * **Base URL** — Harness SaaSではデフォルトで`https://app.harness.io`です。セルフホストのHarnessに接続する場合は変更します。
    * **Gateway prefix** — デフォルトはSaaSで使用する`/gateway`です。一部のセルフホスト環境ではこのプレフィックスを使用しないため、その場合はフィールドを空にします。

    設定が完了したら、**Connect**をクリックします。

    <Frame>
      <img src="https://mintcdn.com/corgea/TPxz-I5TeuxJbvmj/images/harness-9.png?fit=max&auto=format&n=TPxz-I5TeuxJbvmj&q=85&s=bc6c67574229021dbe609772fd4a54f5" style={{ borderRadius: '0.5rem' }} alt="オプションの Harness 統合設定" width="1921" height="992" data-path="images/harness-9.png" />
    </Frame>
  </Step>
</Steps>

Corgeaはトークンを直ちに検証します。検証に成功すると、連携カードにHarnessアカウント名が表示され、[Projects](https://www.corgea.app/projects/)ページからリポジトリを紐づけられるようになります。Harnessリポジトリは`H`アイコンと`<org>/<project>/<repo>`ラベルで表示されます。

## 仕組み

* **リポジトリの検出** — CorgeaはHarness Code APIを呼び出し、トークンでアクセスできる組織やプロジェクト内のすべてのリポジトリを一覧表示します（許可リストを設定した場合は、その条件で絞り込まれます）。新しいリポジトリは自動的に表示されます。Projectsページから手動で更新することもできます。
* **プルリクエストのスキャン** — CorgeaプロジェクトをHarnessリポジトリに紐づけると、CorgeaはHarness Codeにリポジトリ単位のWebhookを登録します。その後、PRを開く、再度開く、またはプッシュすると、インクリメンタルスキャンが実行され、差分上にインラインレビューコメントとして結果が投稿されます。Corgeaはコミットステータスチェック（`corgea-security-scan`）も作成するため、PRルールでマージ前の必須チェックに設定できます。
* **修正をPRとして適用** — Corgeaが検出した問題で**Create Pull Request**をクリックすると、Corgeaが修正を新しいHarnessブランチにプッシュし、問題のソースブランチに対するPRを作成します。
* **Corgea Agent** — CorgeaのPRコメントへの返信は、組織で有効になっている場合、Corgea Agentに送られます。エージェントは問題を誤検知としてマークする、担当者を割り当てる、フォローアップの質問に回答するなどの操作を行い、元のレビューコメントにスレッド形式で返信します。

## 権限

APIキーを所有するユーザー（またはサービスアカウント）には、Corgeaで読み取るすべてのプロジェクトで、少なくとも**Code Repository Viewer**ロールが必要です。PRコメント、ステータスチェック、PRの作成を有効にするには、**Code Repository Admin**、または作成、コメント、ステータスの各権限を含む同等のカスタムロールを付与します。詳細は[HarnessのRBACドキュメント](https://developer.harness.io/docs/platform/role-based-access-control/rbac-in-harness)を参照してください。

## 対応するHarnessデプロイメント

| デプロイメント                         | 対応 | 備考                                                    |
| ------------------------------- | -- | ----------------------------------------------------- |
| Harness SaaS（`app.harness.io`）  | ✅  | デフォルト設定のまま利用できます。                                     |
| Harness Self-Managed Enterprise | ✅  | **Base URL**を変更し、必要に応じて**Gateway prefix**フィールドを空にします。 |
