As seguintes funções podem ser carregadas de @bazel_tools//tools/build_defs/repo:git.bzl.
Regras para clonar repositórios git externos.
git_repository
git_repository(name, branch, build_file, build_file_content, commit, init_submodules, patch_args, patch_cmds, patch_cmds_win, patch_tool, patches, recursive_init_submodules, remote, repo_mapping, shallow_since, strip_prefix, tag, verbose, workspace_file, workspace_file_content)
Clona um repositório git externo.
Clona um repositório Git, faz o check-out da tag ou commit especificado e disponibiliza os destinos para vinculação. Também determine o ID do commit realmente verificado e a data dele, e retorne um dict com parâmetros que fornecem uma versão reproduzível dessa regra (que uma tag não necessariamente é).
Primeiro, o Bazel vai tentar fazer uma busca superficial apenas do commit especificado. Se isso falhar (geralmente devido à falta de suporte do servidor), ele vai voltar a uma busca completa do repositório.
Prefira http_archive a git_repository.
Os motivos são:
- As regras do repositório Git dependem do sistema git(1), enquanto o downloader HTTP é integrado ao Bazel e não tem dependências do sistema.
- http_archiveé compatível com uma lista de- urlscomo espelhos, e- git_repositoryé compatível apenas com um único- remote.
- http_archivefunciona com o cache do repositório, mas não com- git_repository. Consulte #5116 para mais informações.
Atributos
| name | Nome: obrigatório Um nome exclusivo para este repositório. | 
| branch | String; opcional ramificação no repositório remoto para fazer o check-out. É preciso especificar exatamente um branch, uma tag ou um commit. | 
| build_file | Marcador: opcional O arquivo a ser usado como o arquivo BUILD para este repositório. Esse atributo é um rótulo absoluto. Use "@//" para o repositório principal. O arquivo não precisa ser chamado BUILD, mas pode ser (algo como BUILD.new-repo-name pode funcionar bem para diferenciá-lo dos arquivos BUILD reais do repositório. | 
| build_file_content | String; opcional O conteúdo do arquivo BUILD para este repositório. | 
| commit | String; opcional commit específico a ser verificado. É preciso especificar exatamente um branch, uma tag ou um commit. | 
| init_submodules | Booleano; opcional Define se os submódulos serão clonados no repositório. | 
| patch_args | Lista de strings; opcional Os argumentos fornecidos à ferramenta de patch. O padrão é -p0, mas -p1 geralmente é necessário para patches gerados pelo git. Se vários argumentos -p forem especificados, o último vai entrar em vigor.Se argumentos diferentes de -p forem especificados, o Bazel vai usar a ferramenta de linha de comando patch em vez da implementação de patch nativa do Bazel. Quando o fallback é feito para a ferramenta de linha de comando patch e o atributo patch_tool não é especificado, "patch" é usado. | 
| patch_cmds | Lista de strings; opcional Sequência de comandos Bash a serem aplicados no Linux/macOS depois que os patches forem aplicados. | 
| patch_cmds_win | Lista de strings; opcional Sequência de comandos do PowerShell a serem aplicados no Windows após a aplicação dos patches. Se esse atributo não for definido, patch_cmds será executado no Windows, o que exige a existência do binário Bash. | 
| patch_tool | String; opcional O utilitário patch(1) a ser usado. Se especificado, o Bazel vai usar a ferramenta de patch especificada em vez da implementação de patch nativa do Bazel. | 
| patches | Lista de rótulos: opcional Uma lista de arquivos que serão aplicados como patches após a extração do arquivo. Por padrão, ele usa a implementação de patch nativa do Bazel, que não oferece suporte a correspondência aproximada e patch binário. No entanto, o Bazel volta a usar a ferramenta de linha de comando patch se o atributo "patch_tool" for especificado ou se houver argumentos diferentes de "-p" no atributo "patch_args". | 
| recursive_init_submodules | Booleano; opcional Define se os submódulos serão clonados recursivamente no repositório. | 
| remote | String; obrigatório O URI do repositório Git remoto | 
| repo_mapping | Dicionário: string -> string; obrigatório Um dicionário do nome do repositório local para o nome do repositório global. Isso permite controles sobre a resolução de dependências do espaço de trabalho para dependências desse repositório. Por exemplo, uma entrada "@foo": "@bar" declara que, sempre que este repositório depender de "@foo" (como uma dependência de "@foo//some:target"), ele vai resolver essa dependência em "@bar" declarado globalmente ("@bar//some:target"). | 
| shallow_since | String; opcional uma data opcional, não posterior ao commit especificado. O argumento não é permitido se uma tag ou ramificação for especificada (que sempre pode ser clonada com --depth=1). Definir uma data próxima ao commit especificado pode permitir um clone superficial do repositório, mesmo que o servidor não ofereça suporte a buscas superficiais de commits arbitrários. Devido a bugs na implementação "--shallow-since" do git, não é recomendável usar esse atributo, porque ele pode resultar em falhas de busca. | 
| strip_prefix | String; opcional Um prefixo de diretório a ser removido dos arquivos extraídos. | 
| tag | String; opcional tag no repositório remoto para fazer o check-out. É preciso especificar exatamente um branch, uma tag ou um commit. | 
| verbose | Booleano; opcional | 
| workspace_file | Marcador: opcional O arquivo a ser usado como o arquivo "WORKSPACE" para este repositório. É possível especificar "workspace_file" ou "workspace_file_content", ou nenhum dos dois, mas não ambos. | 
| workspace_file_content | String; opcional O conteúdo do arquivo WORKSPACE para este repositório. É possível especificar "workspace_file" ou "workspace_file_content", ou nenhum dos dois, mas não ambos. | 
new_git_repository
new_git_repository(name, branch, build_file, build_file_content, commit, init_submodules, patch_args, patch_cmds, patch_cmds_win, patch_tool, patches, recursive_init_submodules, remote, repo_mapping, shallow_since, strip_prefix, tag, verbose, workspace_file, workspace_file_content)
Clona um repositório git externo.
Clona um repositório Git, faz o check-out da tag ou commit especificado e disponibiliza os destinos para vinculação. Também determine o ID do commit realmente verificado e a data dele, e retorne um dict com parâmetros que fornecem uma versão reproduzível dessa regra (que uma tag não necessariamente é).
Primeiro, o Bazel vai tentar fazer uma busca superficial apenas do commit especificado. Se isso falhar (geralmente devido à falta de suporte do servidor), ele vai voltar a uma busca completa do repositório.
Prefira http_archive a git_repository.
Os motivos são:
- As regras do repositório Git dependem do sistema git(1), enquanto o downloader HTTP é integrado ao Bazel e não tem dependências do sistema.
- http_archiveé compatível com uma lista de- urlscomo espelhos, e- git_repositoryé compatível apenas com um único- remote.
- http_archivefunciona com o cache do repositório, mas não com- git_repository. Consulte #5116 para mais informações.
Atributos
| name | Nome: obrigatório Um nome exclusivo para este repositório. | 
| branch | String; opcional ramificação no repositório remoto para fazer o check-out. É preciso especificar exatamente um branch, uma tag ou um commit. | 
| build_file | Marcador: opcional O arquivo a ser usado como o arquivo BUILD para este repositório. Esse atributo é um rótulo absoluto. Use "@//" para o repositório principal. O arquivo não precisa ser chamado BUILD, mas pode ser (algo como BUILD.new-repo-name pode funcionar bem para diferenciá-lo dos arquivos BUILD reais do repositório. | 
| build_file_content | String; opcional O conteúdo do arquivo BUILD para este repositório. | 
| commit | String; opcional commit específico a ser verificado. É preciso especificar exatamente um branch, uma tag ou um commit. | 
| init_submodules | Booleano; opcional Define se os submódulos serão clonados no repositório. | 
| patch_args | Lista de strings; opcional Os argumentos fornecidos à ferramenta de patch. O padrão é -p0, mas -p1 geralmente é necessário para patches gerados pelo git. Se vários argumentos -p forem especificados, o último vai entrar em vigor.Se argumentos diferentes de -p forem especificados, o Bazel vai usar a ferramenta de linha de comando patch em vez da implementação de patch nativa do Bazel. Quando o fallback é feito para a ferramenta de linha de comando patch e o atributo patch_tool não é especificado, "patch" é usado. | 
| patch_cmds | Lista de strings; opcional Sequência de comandos Bash a serem aplicados no Linux/macOS depois que os patches forem aplicados. | 
| patch_cmds_win | Lista de strings; opcional Sequência de comandos do PowerShell a serem aplicados no Windows após a aplicação dos patches. Se esse atributo não for definido, patch_cmds será executado no Windows, o que exige a existência do binário Bash. | 
| patch_tool | String; opcional O utilitário patch(1) a ser usado. Se especificado, o Bazel vai usar a ferramenta de patch especificada em vez da implementação de patch nativa do Bazel. | 
| patches | Lista de rótulos: opcional Uma lista de arquivos que serão aplicados como patches após a extração do arquivo. Por padrão, ele usa a implementação de patch nativa do Bazel, que não oferece suporte a correspondência aproximada e patch binário. No entanto, o Bazel volta a usar a ferramenta de linha de comando patch se o atributo "patch_tool" for especificado ou se houver argumentos diferentes de "-p" no atributo "patch_args". | 
| recursive_init_submodules | Booleano; opcional Define se os submódulos serão clonados recursivamente no repositório. | 
| remote | String; obrigatório O URI do repositório Git remoto | 
| repo_mapping | Dicionário: string -> string; obrigatório Um dicionário do nome do repositório local para o nome do repositório global. Isso permite controles sobre a resolução de dependências do espaço de trabalho para dependências desse repositório. Por exemplo, uma entrada "@foo": "@bar" declara que, sempre que este repositório depender de "@foo" (como uma dependência de "@foo//some:target"), ele vai resolver essa dependência em "@bar" declarado globalmente ("@bar//some:target"). | 
| shallow_since | String; opcional uma data opcional, não posterior ao commit especificado. O argumento não é permitido se uma tag ou ramificação for especificada (que sempre pode ser clonada com --depth=1). Definir uma data próxima ao commit especificado pode permitir um clone superficial do repositório, mesmo que o servidor não ofereça suporte a buscas superficiais de commits arbitrários. Devido a bugs na implementação "--shallow-since" do git, não é recomendável usar esse atributo, porque ele pode resultar em falhas de busca. | 
| strip_prefix | String; opcional Um prefixo de diretório a ser removido dos arquivos extraídos. | 
| tag | String; opcional tag no repositório remoto para fazer o check-out. É preciso especificar exatamente um branch, uma tag ou um commit. | 
| verbose | Booleano; opcional | 
| workspace_file | Marcador: opcional O arquivo a ser usado como o arquivo "WORKSPACE" para este repositório. É possível especificar "workspace_file" ou "workspace_file_content", ou nenhum dos dois, mas não ambos. | 
| workspace_file_content | String; opcional O conteúdo do arquivo WORKSPACE para este repositório. É possível especificar "workspace_file" ou "workspace_file_content", ou nenhum dos dois, mas não ambos. |