リポジトリを作成する

このページでは、Secure Source Manager ウェブ インターフェースまたは Secure Source Manager API を使用してリポジトリを作成する方法について説明します。

Secure Source Manager インスタンスがまだ作成されていない場合は、Secure Source Manager インスタンスを作成するをご覧ください。

始める前に

  1. Secure Source Manager インスタンスを作成するか、アクセス権をリクエストします。詳細については、Secure Source Manager インスタンスを作成するをご覧ください。
  2. Install the Google Cloud CLI.

  3. If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

  4. To initialize the gcloud CLI, run the following command:

    gcloud init
  5. beta Google Cloud CLI コンポーネントをインストールします。
    gcloud components install alpha

必要なロール

リポジトリの作成に必要な権限を取得するには、次の IAM ロールを付与するよう管理者に依頼してください。

ロールの付与については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。

必要な権限は、カスタムロールや他の事前定義ロールから取得することもできます。

Secure Source Manager のロールの付与については、IAM によるアクセス制御ユーザーにインスタンスへのアクセス権を付与するをご覧ください。

リポジトリを作成する

ウェブ インターフェース

  1. ウェブ インターフェースから Secure Source Manager インスタンスにアクセスするには、次の URL をブラウザのアドレスバーにコピーします。

    INSTANCE_ID-PROJECT_NUMBER.LOCATION.sourcemanager.dev

    次のように置き換えます。

    • INSTANCE_ID は、インスタンス名に置き換えます。
    • PROJECT_NUMBER は、インスタンスの Google Cloudプロジェクト番号に置き換えます。プロジェクトの識別については、プロジェクトの識別をご覧ください。
    • LOCATION は、インスタンスのリージョンに置き換えます。

  2. 必要に応じて、Secure Source Manager の認証情報を使用して認証します。

  3. ナビゲーション メニューの右上にある [+ 新しいリポジトリを作成] アイコンをクリックします。

  4. リポジトリの詳細を入力します。

    1. リポジトリ ID: リポジトリの名前を入力します。

    2. 説明: 省略可。リポジトリの説明。

    3. リポジトリを初期化する: 省略可。リポジトリを初期化して .gitignore、ライセンス、README ファイルを追加する場合は、このオプションを選択します。

    4. .gitignore: 省略可。プルダウン メニュー テンプレートを使用して、トラッキングしないファイルを指定します。

    5. license: 省略可。プルダウン メニューから共通ライセンスを選択します。

    6. デフォルトのブランチ: デフォルトのブランチの名前。

  5. [送信] をクリックします。

gcloud

  1. 次のコマンドを実行して、gcloud CLI を使用してリポジトリを作成します。

    gcloud alpha source-manager repos create REPOSITORY_ID \
        --region=LOCATION \
        --project=PROJECT_ID \
        --instance=INSTANCE_ID \
        --description=DESCRIPTION \
        --default-branch=BRANCH \
        --gitignores=GITIGNORES \
        --license=LICENSE \
        --readme=README
    

    次のように置き換えます。

    • REPOSITORY_ID は、リポジトリの名前に置き換えます。

    • LOCATION は、リポジトリを作成するリージョンに置き換えます。サポートされているロケーションについては、ロケーションをご覧ください。

    • PROJECT_ID は、リポジトリを作成する Secure Source Manager インスタンスのプロジェクト ID に置き換えます。

    • INSTANCE_ID は、リポジトリを作成するインスタンスのインスタンス ID に置き換えます。プロジェクト内の Secure Source Manager インスタンスの一覧を取得するには、インスタンスの一覧表示と表示をご覧ください。

    • DESCRIPTION は、リポジトリの説明に置き換えます。これは省略可能です。

    • BRANCH は、デフォルトのブランチ名に置き換えます。これは省略可能です。設定されていない場合のデフォルトのブランチ名は main です。

    • GITIGNORES は、gitignore テンプレート名のカンマ区切りのリストに置き換えます。これは省略可能です。使用可能なテンプレートの完全なリストについては、リポジトリの初期化構成リファレンスをご覧ください。

    • LICENSE は、リポジトリに適用するライセンス テンプレートの名前に置き換えます。これは省略可能です。使用可能なライセンス テンプレートの完全なリストを表示するには、リポジトリの初期化構成リファレンスをご覧ください。

    • READMEdefault を使用して、デフォルトのテンプレートから README ファイルを作成します。これは省略可能です。省略すると、README ファイルは作成されません。

API

  1. 次のコマンドを実行して、REST 呼び出しを使用してリポジトリを作成します。

    curl \
        -H "Content-Type: application/json" \
        -H "Authorization: Bearer $(gcloud auth print-access-token)" \
        https://securesourcemanager.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/repositories?repository_id=REPOSITORY_ID \
        -d '{"instance": "projects/PROJECT_ID/locations/REGION/instances/INSTANCE_ID"}'
    

    次のように置き換えます。

    • REGION は、Secure Source Manager インスタンスのリージョンです。サポートされているロケーションについては、ロケーションをご覧ください。
    • INSTANCE_ID は、Secure Source Manager インスタンス ID です。
    • PROJECT_ID は、Secure Source Manager インスタンスのプロジェクト ID です。プロジェクト ID の確認方法については、プロジェクトの識別をご覧ください。
    • REPOSITORY_ID はリポジトリの名前です。

    HTTP POST データフラグ -d'{}' を使用して、追加の値を指定できます。これには、リポジトリの初期化、特定の .gitignore ファイルの追加、ライセンスなどが含まれます。詳細については、リファレンス ドキュメントをご覧ください。

    出力を人間が読めるようにする場合は、json_pp を使用して JSON にパイプできます。

    次に例を示します。

    curl \
        -X POST \
        -H "Content-Type: application/json" \
        -H "Authorization: Bearer $(gcloud auth print-access-token)" \
        https://securesourcemanager.googleapis.com/v1/projects/my-project-id/locations/us-central1/repositories?repository_id=my-repo \
        -d '{"instance": "projects/my-project-id/locations/us-central1/instances/prod-test-instance", "initialConfig":{"defaultBranch":"main"}}' | json_pp
    

    レスポンスは次のようになります。

    {
      "name": "operations/266bf4c7-13fe-11ed-be24-da823b7355d0",
      "metadata": {
        "@type": "type.googleapis.com/google.cloud.securesourcemanager.v1.OperationMetadata",
        "createTime": "2022-08-04T14:02:59.810496928Z",
        "endTime": "2022-08-04T14:03:00.558354528Z",
        "target": "projects/654987321654/locations/us-central1/repositories/my-repo",
        "verb": "create",
        "apiVersion": "v1"
      },
      "done": true,
      "response": {
        "@type": "type.googleapis.com/google.cloud.securesourcemanager.v1.Repository",
        "name": "projects/my-project-id/locations/us-central1/repositories/my-repo",
        "instance": "projects/654987321654/locations/us-central1/instances/prod-test-instance",
        "createTime": "2022-08-04T14:03:00Z",
        "uris": {
          "html": "https://prod-test-instance-654987321654.us-central1.sourcemanager.dev/my-project-id/my-repo",
          "gitHttps": "https://prod-test-instance-654987321654-git.us-central1.sourcemanager.dev/my-project-id/my-repo.git"
        }
    }
    

    ここで

    • 654987321654 はリポジトリ プロジェクト番号です。
    • my-project-id は、リポジトリ プロジェクト ID です。
    • my-repo は、作成コマンドで設定した REPOSITORY_ID です。uris フィールドには、ウェブブラウザまたは Git プロトコル HTTPS アクセスを介してリポジトリにアクセスするための URL が含まれています。
  2. レスポンスの HTML URI を使用して、新しいリポジトリにアクセスします。コードレビュー、問題の追跡、pull リクエストは、Secure Source Manager ウェブ インターフェースでサポートされています。

リポジトリは Secure Source Manager インスタンスに作成されます。

新しいリポジトリを作成すると、リポジトリ管理者ロール(roles/securesourcemanager.repoAdmin)が付与されます。新しい IAM 権限が反映されるまでに最大 2 分かかることがあります。作成後にリポジトリにアクセスしようとしたときに権限エラーが発生した場合は、数分待ってからもう一度お試しください。

作成したリポジトリは、Secure Source Manager ウェブ インターフェースの [マイ リポジトリ] ページに表示されます。

次のステップ