저장소 만들기

이 페이지에서는 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를 사용하여 새 저장소에 액세스합니다. 코드 검토, 문제 추적, 풀 요청은 Secure Source Manager 웹 인터페이스에서 지원됩니다.

저장소가 Secure Source Manager 인스턴스에 생성됩니다.

새 저장소를 만들면 저장소 관리자 역할 (roles/securesourcemanager.repoAdmin)이 부여됩니다. 새 IAM 권한이 전파되는 데 최대 2분이 걸릴 수 있으므로 생성 후 저장소에 액세스하려고 할 때 권한 오류가 표시되면 몇 분 정도 기다린 후 다시 시도하세요.

생성한 저장소는 Secure Source Manager 웹 인터페이스의 내 저장소 페이지에 나열됩니다.

다음 단계