Criar um repositório

Nesta página, descrevemos como criar um repositório usando a interface da Web ou a API do Secure Source Manager.

Se a instância do Secure Source Manager ainda não foi criada, consulte Criar uma instância do Secure Source Manager para começar.

Antes de começar

  1. Crie ou solicite acesso a uma instância do Secure Source Manager. Para mais informações, consulte Criar uma instância do 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. Instale o componente beta da Google Cloud CLI:
    gcloud components install alpha

Funções exigidas

Para receber as permissões necessárias para criar um repositório, peça ao administrador para conceder a você os seguintes papéis do IAM:

Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.

Também é possível conseguir as permissões necessárias usando papéis personalizados ou outros papéis predefinidos.

Para informações sobre como conceder papéis do Secure Source Manager, consulte Controle de acesso com o IAM e Conceder acesso à instância aos usuários.

Criar um repositório

Interface da Web

  1. Para acessar a instância do Secure Source Manager pela interface da Web, copie o seguinte URL na barra de endereço do navegador.

    INSTANCE_ID-PROJECT_NUMBER.LOCATION.sourcemanager.dev

    Substitua:

    • INSTANCE_ID pelo nome da instância.
    • PROJECT_NUMBER pelo número do projeto Google Cloud da instância. Para informações sobre como identificar projetos, consulte Identificar projetos.
    • LOCATION com a região da instância.

  2. Autentique usando suas credenciais do Secure Source Manager, se necessário.

  3. Clique no ícone + Criar repositório no canto superior direito do menu de navegação.

  4. Preencha os detalhes do repositório:

    1. ID do repositório: insira um nome para o repositório.

    2. Descrição: opcional. Descrição do repositório.

    3. Inicializar repositório: opcional. Selecione essa opção se quiser inicializar o repositório e adicionar arquivos .gitignore, de licença e README.

    4. .gitignore: opcional. Escolha quais arquivos não rastrear usando os modelos de menu suspenso.

    5. license: opcional. Selecione uma licença comum no menu suspenso.

    6. Ramificação padrão: nome da ramificação padrão.

  5. Clique em Enviar.

gcloud

  1. Crie um repositório usando a CLI gcloud executando o seguinte comando:

    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
    

    Substitua:

    • REPOSITORY_ID com o nome do repositório.

    • LOCATION com a região em que você quer criar o repositório. Para informações sobre os locais compatíveis, consulte Locais.

    • PROJECT_ID pelo ID do projeto da instância do Secure Source Manager em que você quer criar o repositório.

    • INSTANCE_ID com o ID da instância em que você está criando o repositório. Para listar as instâncias do Secure Source Manager no seu projeto, consulte Listar e visualizar instâncias.

    • DESCRIPTION com uma descrição do repositório. Isso é opcional e pode ser omitido.

    • BRANCH com o nome da ramificação padrão. Isso é opcional e pode ser omitido. O nome da ramificação padrão quando não definido é main.

    • GITIGNORES com uma lista separada por vírgulas de nomes de modelos do gitignore. Isso é opcional e pode ser omitido. Para conferir a lista completa de modelos disponíveis, consulte a referência de configuração de inicialização do repositório.

    • LICENSE com o nome do modelo de licença a ser aplicado ao repositório. Isso é opcional e pode ser omitido. Para conferir a lista completa de modelos de licença disponíveis, consulte a referência de configuração de inicialização do repositório.

    • README com default para criar um arquivo README com base no modelo padrão. Isso é opcional e pode ser omitido. Se omitido, um arquivo README não será criado.

API

  1. Crie um repositório usando uma chamada REST executando o seguinte comando:

    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"}'
    

    Substitua:

    • REGION é a região da sua instância do Secure Source Manager. Para informações sobre os locais compatíveis, consulte Locais.
    • INSTANCE_ID é o ID da instância do Secure Source Manager.
    • PROJECT_ID é o ID do projeto da sua instância do Secure Source Manager. Consulte Identificar projetos para saber onde encontrar o ID do projeto.
    • REPOSITORY_ID é o nome do repositório.

    Outros valores podem ser especificados usando a flag de dados HTTP POST, -d'{}', incluindo a inicialização do repositório, a adição de um arquivo .gitignore específico ou licenças. Consulte a documentação de referência para mais informações.

    Se quiser que a saída seja legível por humanos, transmita-a para JSON usando json_pp.

    Exemplo:

    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
    

    A resposta será semelhante a esta:

    {
      "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"
        }
    }
    

    Em que:

    • 654987321654 é o número do projeto do repositório.
    • my-project-id é o ID do projeto do repositório.
    • my-repo é o REPOSITORY_ID definido no comando de criação. O campo uris contém os URLs para acessar o repositório pelo navegador da Web ou pelo acesso HTTPS do protocolo Git.
  2. Acesse o novo repositório com o URI HTML na resposta. A revisão de código, o rastreamento de problemas e as solicitações de envio são compatíveis com a interface da Web do Secure Source Manager.

O repositório é criado na sua instância do Secure Source Manager.

O papel de administrador do repositório (roles/securesourcemanager.repoAdmin) é concedido a você quando você cria um repositório. A nova permissão do IAM pode levar até dois minutos para ser propagada. Por isso, se você receber um erro de permissões ao tentar acessar o repositório após a criação, aguarde alguns minutos e tente de novo.

Os repositórios que você criou são listados na interface da Web do Secure Source Manager na página Meus repositórios.

A seguir