As funções a seguir 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)
Clonar um repositório git externo.
Clona um repositório Git, verifica a tag ou commit especificado e disponibiliza os destinos para vinculação. Também determina o ID do commit realmente verificado e a data dele e retorna um dicionário com parâmetros que fornecem uma versão reproduzível dessa regra (que uma tag não é necessariamente necessária).
O Bazel primeiro tenta fazer uma busca superficial apenas do commit especificado. Se isso falhar (geralmente devido à falta de suporte do servidor), ele vai voltar para uma busca completa do repositório.
Prefira http_archive
a git_repository
.
Os motivos são:
- As regras do repositório do Git dependem do
git(1)
do sistema, enquanto o downloader HTTP é integrado ao Bazel e não tem dependências do sistema. http_archive
oferece suporte a uma lista deurls
como espelhos, egit_repository
oferece suporte apenas a uma únicaremote
.- O
http_archive
funciona com o cache do repositório, mas não com ogit_repository
. Consulte #5116 para mais informações.
Atributos
name |
Nome: obrigatório
Um nome exclusivo para este repositório. |
branch |
String; opcional
no repositório remoto para ser verificado. É preciso especificar exatamente uma das opções: branch, tag ou commit. |
build_file |
Rótulo: opcional
O arquivo a ser usado como BUILD para este repositório. Esse atributo é um rótulo absoluto (use "@//" para o repositório principal). O arquivo não precisa ser chamado de BUILD, mas pode ser. Algo como BUILD.new-repo-name pode ser útil 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 uma das opções: branch, tag ou 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. Quando vários argumentos -p são especificados, o último entra em vigor.Se outros argumentos diferentes de -p forem especificados, o Bazel voltará a usar a ferramenta de linha de comando "patch" em vez da implementação de patch nativa do Bazel. Quando a ferramenta de linha de comando de patch e o atributo patch_tool não forem especificados, o "patch" será usado. |
patch_cmds |
Lista de strings; opcional
Sequência de comandos do 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 depois que os patches forem aplicados. Se esse atributo não for definido, o patch_cmds será executado no Windows, o que exige que o binário do Bash exista. |
patch_tool |
String; opcional
O utilitário de patch(1) a ser usado. Se esse valor for especificado, o Bazel vai usar a ferramenta de patch especificada em vez da implementação de patch nativa do Bazel. |
patches |
Lista de identificadores: 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 de fuzz e patch binário, mas o Bazel vai usar a ferramenta de linha de comando de 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 o controle sobre a resolução de dependências do espaço de trabalho para dependências deste repositório. Por exemplo, uma entrada"@foo": "@bar" declara que, sempre que esse repositório depender de@foo (como uma dependência de@foo//some:target), ele precisa resolver essa dependência dentro de@bar declarado globalmente (@bar//some:target). |
shallow_since |
String; opcional
uma data opcional, não após a confirmação especificada. O argumento não é permitido se uma tag ou ramificação for especificada (que sempre pode ser clonada com --depth=1). A definição de uma data próxima à especificada pode permitir um clone superficial do repositório, mesmo que o servidor não ofereça suporte a buscas superficiais de confirmações arbitrárias. Devido a bugs na implementação de --shallow-Since do git, o uso desse atributo não é recomendado, já que isso pode resultar em falhas de busca. |
strip_prefix |
String; opcional
Um prefixo de diretório para remover dos arquivos extraídos. |
tag |
String; opcional
tag no repositório remoto para fazer o check-out. É preciso especificar exatamente uma das opções: branch, tag ou commit. |
verbose |
Booleano; opcional |
workspace_file |
Rótulo: opcional
O arquivo a ser usado como "WORKSPACE" para este repositório. É possível especificar `workspace_file` ou `workspace_file_content` ou nenhum deles, 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", 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)
Clone um repositório Git externo.
Clona um repositório Git, verifica a tag ou commit especificado e disponibiliza os destinos para vinculação. Também determina o ID do commit realmente verificado e a data dele e retorna um dicionário com parâmetros que fornecem uma versão reproduzível dessa regra (que uma tag não é necessariamente necessária).
O Bazel primeiro tenta fazer uma busca superficial apenas do commit especificado. Se isso falhar (geralmente devido à falta de suporte do servidor), ele vai voltar para uma busca completa do repositório.
Prefira http_archive
a git_repository
.
Os motivos são:
- As regras do repositório do Git dependem do
git(1)
do sistema, enquanto o downloader HTTP é integrado ao Bazel e não tem dependências do sistema. http_archive
oferece suporte a uma lista deurls
como espelhos, egit_repository
oferece suporte apenas a uma únicaremote
.http_archive
funciona com o cache do repositório, mas não comgit_repository
. Consulte #5116 para mais informações.
Atributos
name |
Nome: obrigatório
Um nome exclusivo para este repositório. |
branch |
String; opcional
no repositório remoto para fazer o check-out. É preciso especificar exatamente uma das opções: branch, tag ou commit. |
build_file |
Rótulo: opcional
O arquivo a ser usado como o arquivo BUILD para esse repositório.Esse atributo é um rótulo absoluto (use "@//" para o repositório principal). O arquivo não precisa ser chamado de BUILD, mas pode ser. Algo como BUILD.new-repo-name pode ser útil 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 uma das opções: branch, tag ou 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. Quando vários argumentos -p são especificados, o último entra em vigor.Se outros argumentos diferentes de -p forem especificados, o Bazel voltará a usar a ferramenta de linha de comando "patch" em vez da implementação de patch nativa do Bazel. Quando a ferramenta de linha de comando de patch e o atributo patch_tool não forem especificados, o "patch" será usado. |
patch_cmds |
Lista de strings; opcional
Sequência de comandos do 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 depois que os patches forem aplicados. Se esse atributo não for definido, o patch_cmds será executado no Windows, o que exige que o binário do Bash exista. |
patch_tool |
String; opcional
O utilitário de patch(1) a ser usado. Se esse valor for especificado, o Bazel vai usar a ferramenta de patch especificada em vez da implementação de patch nativa do Bazel. |
patches |
Lista de identificadores: opcional
Uma lista de arquivos que serão aplicados como patches após a extração do arquivo. Por padrão, ela usa a implementação de patch nativa do Bazel que não oferece suporte à correspondência de fuzz e ao patch binário. No entanto, o Bazel voltará 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 |
Dictionary: String -> String (obrigatório).
Um dicionário do nome do repositório local para o nome do repositório global. Isso permite o controle da 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 esse repositório depender de@foo (como uma dependência de@foo//some:target), ele precisa resolver essa dependência dentro de@bar declarado globalmente (@bar//some:target). |
shallow_since |
String; opcional
uma data opcional, não após a confirmação especificada. O argumento não é permitido se uma tag ou ramificação for especificada (que sempre pode ser clonada com --depth=1). A definição de uma data próxima à especificada pode permitir um clone superficial do repositório, mesmo que o servidor não ofereça suporte a buscas superficiais de confirmações arbitrárias. Devido a bugs na implementação de --shallow-Since do git, o uso desse atributo não é recomendado, já que isso pode resultar em falhas de busca. |
strip_prefix |
String; opcional
Um prefixo de diretório para remover dos arquivos extraídos. |
tag |
String; opcional
tag no repositório remoto para fazer o check-out. É preciso especificar exatamente uma das opções: branch, tag ou commit. |
verbose |
Booleano; opcional |
workspace_file |
Rótulo: opcional
O arquivo a ser usado como "WORKSPACE" para este repositório. É possível especificar `workspace_file` ou `workspace_file_content` ou nenhum deles, 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", mas não ambos. |