O Secure Source Manager oferece suporte a todos os SCM do Git comandos do cliente e tem solicitações de pull e rastreamento de problemas integrados. A autenticação HTTPS e SSH é aceita.
Funções exigidas
Para receber as permissões necessárias para usar o Git e interagir com um repositório do Secure Source Manager, peça ao administrador para conceder a você os seguintes papéis do IAM:
- Acessador de instâncias do Secure Source Manager (
roles/securesourcemanager.instanceAccessor) na instância do Secure Source Manager -
Para clonar um repositório:
leitor de repositórios do Secure Source Manager (
roles/securesourcemanager.repoReader) no repositório -
Para enviar por push a um repositório:
gravador de repositórios do Secure Source Manager (
roles/securesourcemanager.repoWriter) no repositório
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 personalizados papéis ou outros predefinidos papéis.
Para informações sobre como conceder papéis do Secure Source Manager, consulte Controle de acesso com o IAM e Conceder acesso de instância aos usuários.
Instalar o Git e a Google Cloud CLI
Instale o Git.
Se o instalador do Git solicitar que você escolha um auxiliar de credenciais , selecione Nenhum (não usar um auxiliar de credenciais).
A versão
395.0.0ou mais recente da CLI gcloud é necessária para usar o Git com HTTPS. Para verificar a versão da CLI gcloud, execute o seguinte comando:gcloud --versionPara atualizar a CLI gcloud, execute o seguinte comando.
gcloud components updateApós a atualização, execute
gcloud initpara inicializar a CLI gcloud.Consulte a documentação da CLI gcloud sobre como atualizar componentes para mais informações.
Configurar suas credenciais
Adicione o auxiliar de autenticação do Secure Source Manager à configuração global do Git executando o seguinte comando:
Linux
git config --global credential.'https://*.*.sourcemanager.dev'.helper gcloud.sh
As versões anteriores do Git podem não oferecer suporte a caracteres curinga. Para adicionar o auxiliar de autenticação sem caracteres curinga, execute o seguinte comando:
git config --global credential.'https://INSTANCE_ID-PROJECT_NUMBER-git.LOCATION.sourcemanager.dev'.helper gcloud.sh
Substitua:
INSTANCE_IDpelo nome da instância do Secure Source Manager.PROJECT_NUMBERpelo número do projeto. Para receber ajuda para encontrar o número do projeto, consulte Identificar projetos.LOCATIONpela região da instância. Para mais informações sobre regiões, consulte Locais.
Windows
git config --global credential.https://*.*.sourcemanager.dev.helper gcloud.cmd
As versões anteriores do Git podem não oferecer suporte a caracteres curinga. Para adicionar o auxiliar de autenticação sem caracteres curinga, execute o seguinte comando:
git config --global credential.https://INSTANCE_ID-PROJECT_NUMBER-git.LOCATION.sourcemanager.dev.helper gcloud.cmd
Substitua:
INSTANCE_IDpelo nome da instância do Secure Source Manager.PROJECT_NUMBERpelo número do projeto. Para receber ajuda para encontrar o número do projeto, consulte Identificar projetos.LOCATIONpela região da instância. Para mais informações sobre regiões, consulte Locais.
O auxiliar de autenticação usa a CLI gcloud para buscar suas Google Cloud credenciais ao usar comandos do Git com o Secure Source Manager.
Para fazer a autenticação novamente após a configuração inicial das credenciais, execute o seguinte comando da CLI gcloud:
gcloud auth login
Autenticar em uma VM do Compute Engine usando uma conta de serviço
É possível fazer a autenticação em uma máquina virtual (VM) do Compute Engine usando uma conta de serviço anexada.
Configurar a VM e a conta de serviço
Se você usar a conta de serviço padrão do Compute Engine, crie a VM com os escopos OAuth necessários:
gcloud compute instances create VM_NAME \
--project=PROJECT_ID \
--zone=ZONE \
--scopes=openid,https://www.googleapis.com/auth/userinfo.profile,https://www.googleapis.com/auth/userinfo.email,https://www.googleapis.com/auth/cloud-platform
Substitua:
VM_NAME: o nome da VM.PROJECT_ID: o ID do Google Cloud projeto.ZONE: a zona da VM.
Se você usar uma conta de serviço personalizada, crie a conta de serviço e, em seguida, crie a VM.
Crie uma conta de serviço:
gcloud iam service-accounts create SA_NAME --project=PROJECT_IDSubstitua
SA_NAMEpor um nome para a conta de serviço.Conceda permissão para usar a conta de serviço. Para criar uma VM com uma conta de serviço, você precisa do papel Usuário da conta de serviço (
roles/iam.serviceAccountUser) na conta de serviço. Conceda esse papel ao principal que está criando a VM:gcloud iam service-accounts add-iam-policy-binding SA_NAME@PROJECT_ID.iam.gserviceaccount.com \ --member="user:USER_EMAIL" \ --role="roles/iam.serviceAccountUser"Substitua
USER_EMAILpelo e-mail do usuário que está criando a VM.Crie a VM:
gcloud compute instances create VM_NAME \ --project=PROJECT_ID \ --zone=ZONE \ --scopes=openid,https://www.googleapis.com/auth/userinfo.profile,https://www.googleapis.com/auth/userinfo.email,https://www.googleapis.com/auth/cloud-platform \ --service-account=SA_NAME@PROJECT_ID.iam.gserviceaccount.com
Conceder papéis do IAM à conta de serviço
Conceda à conta de serviço acesso à instância e ao repositório do Secure Source Manager:
Conceda acesso à instância:
SA_EMAIL=$(gcloud compute instances describe VM_NAME --project=PROJECT_ID --zone=ZONE --format="get(serviceAccounts[0].email)") gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:$SA_EMAIL" \ --role=roles/securesourcemanager.instanceAccessorConceda acesso de leitura ao repositório.
Para conceder acesso de leitura a um repositório específico, execute o seguinte comando:
gcloud ssm repos add-iam-policy-binding REPOSITORY_ID \ --instance=INSTANCE_ID \ --location=LOCATION \ --member="serviceAccount:$SA_EMAIL" \ --role=roles/securesourcemanager.repoReaderSubstitua:
REPOSITORY_ID: o ID do repositório.INSTANCE_ID: o ID da instância do Secure Source Manager.LOCATION: a região da instância do Secure Source Manager.
Para conceder acesso de gravação, use o papel
roles/securesourcemanager.repoWriter.Recomendamos conceder acesso no nível do repositório para seguir o princípio de privilégio mínimo. Se você precisar conceder acesso a todos os repositórios em um projeto, consulte Controle de acesso com o IAM.
As permissões do IAM podem levar alguns minutos para serem propagadas.
Configurar o Git na VM
Conecte-se à VM usando SSH:
gcloud compute ssh VM_NAME --project=PROJECT_ID --zone=ZONENa VM, instale o Git:
sudo apt-get install gitNa VM, configure o auxiliar de credenciais do Git conforme descrito em Configurar suas credenciais. Por exemplo, no Linux:
git config --global credential.'https://*.*.sourcemanager.dev'.helper gcloud.sh
Depois de configurar o auxiliar de credenciais, o Git usa o Application Default Credentials da conta de serviço da VM para fazer a autenticação no Secure Source Manager. Agora é possível clonar um repositório. É necessário usar o URL do repositório HTTPS para fazer a autenticação com o Application Default Credentials.
Criar uma configuração de login do pool de identidades da força de trabalho
Não é necessário concluir esta seção, a menos que você esteja usando a federação de identidade de colaboradores para fazer a autenticação no Secure Source Manager com um provedor de identidade de terceiros.
Para fazer a autenticação com as credenciais do pool de identidades da força de trabalho na instância do Secure Source Manager usando comandos da CLI gcloud ou comandos do Git, é necessário criar uma configuração de login com o pool de identidades da força de trabalho.
Para criar uma configuração de login do pool de identidades de colaboradores, siga as instruções em Receber tokens de curta duração para a federação de identidade de colaboradores para criar um login baseado em navegador com a CLI gcloud.
Depois de fazer a autenticação, você pode usar comandos do Git para interagir com a instância do Secure Source Manager. É necessário fazer a autenticação novamente quando a duração da sessão do pool de identidades da força de trabalho expirar.
Clonar um repositório
Para clonar um repositório, execute o seguinte comando:
git clone REPOSITORY_URL
Em que REPOSITORY_URL é o URL HTTPS ou SSH exibido na parte de cima da página do repositório que você quer clonar.
Clonar com o Developer Connect
É possível clonar repositórios usando o proxy do Git do Developer Connect se você tiver vinculado o repositório do Secure Source Manager no Developer Connect. A clonagem com o Developer Connect usa o IAM para autenticar e autorizar o acesso ao repositório.
Antes de começar
- Siga as instruções para criar uma conexão com um repositório do Secure Source Manager no Developer Connect.
- Verifique se o proxy do Git está ativado na conexão do Developer Connect. Consulte Configurar e usar o proxy do Developer Connect para instruções sobre como ativar o proxy do Git.
- Conceda aos principais que precisam clonar usando o URI do proxy o papel
roles/developerconnect.gitProxyReaderno recursoGitRepositoryLinkno Developer Connect. Consulte Controle de acesso do Developer Connect com o IAM para instruções sobre como conceder papéis.
Configurar credenciais para o Developer Connect
Adicione o auxiliar de autenticação do Developer Connect à configuração global do Git executando o seguinte comando:
Linux
git config --global credential.'https://*.developerconnect.dev'.helper gcloud.sh
Windows
git config --global credential.https://*.developerconnect.dev.helper gcloud.cmd
Clonar usando o URI do proxy
Para clonar um repositório usando o URI do proxy do Developer Connect, execute o seguinte comando:
git clone https://REGION-git.developerconnect.dev/v1/projects/PROJECT_ID/locations/REGION/connections/CONNECTION_ID/gitRepositoryLinks/LINK_ID
Substitua:
REGION: a região dos recursos do Developer Connect.PROJECT_ID: o ID do projeto dos recursos do Developer Connect.CONNECTION_ID: o ID da conexão do Developer Connect.LINK_ID: o ID do recursoGitRepositoryLinkdo Developer Connect.
Para instruções sobre como visualizar os detalhes do recurso GitRepositoryLink, consulte
gcloud developer-connect connections git-repository-links.
É possível usar os subcomandos list ou describe para visualizar os detalhes do link.
Enviar um repositório atual por push para o Secure Source Manager
É necessário criar um repositório do Secure Source Manager para atuar como um controle remoto antes de enviar por push para ele.
Para enviar seu repositório Git atual por push para um repositório vazio do Secure Source Manager, adicione o repositório do Secure Source Manager como um controle remoto e envie por push para ele.
Para definir o repositório do Secure Source Manager como um controle remoto, execute o seguinte comando:
git remote add origin REPOSITORY_URLEm que
REPOSITORY_URLé o URL HTTPS ou SSH exibido na parte de cima da página do repositório.Para enviar por push ao repositório, execute o seguinte comando:
git push -u origin main
Para mais informações sobre o gerenciamento de código-fonte do Git, leia a documentação do Git.
A seguir
- Saiba mais sobre o gerenciamento de código-fonte do Git
- Listar e visualizar repositórios.