Las siguientes funciones se pueden cargar desde @bazel_tools//tools/build_defs/repo:git.bzl
.
Reglas para clonar repositorios de 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 un repositorio de Git externo
Clona un repositorio de Git, verifica la etiqueta especificada o confirma, y pone sus destinos a disposición para la vinculación. Además, determina el ID de la confirmación que se verificó y su fecha, y muestra un diccionario con los parámetros que proporcionen una versión reproducible de esta regla (que no es necesariamente una etiqueta).
Bazel primero intentará realizar una recuperación superficial solo de la confirmación especificada. Si eso falla (por lo general, debido a la falta de compatibilidad del servidor), se recurrirá a una recuperación completa del repositorio.
Si prefieres http_archive
en lugar de git_repository
.
Estos son los motivos:
- Las reglas del repositorio de Git dependen del sistema
git(1)
, mientras que el cargador HTTP está compilado en Bazel y no tiene dependencias del sistema. http_archive
admite una lista deurls
como duplicaciones, ygit_repository
admite solo unaremote
.http_archive
funciona con la caché del repositorio, pero no congit_repository
. Consulta #5116 para obtener más información.
Atributos
name |
Name; obligatorio
Un nombre único para este repositorio. |
branch |
Cadena (opcional)
en la rama del repositorio remoto para extraerla. Se debe especificar precisamente uno de los valores de rama, etiqueta o confirmación. |
build_file |
Etiqueta (opcional)
El archivo que se usará como archivo de COMPILACIÓN para este repositorio.Este atributo es una etiqueta absoluta (usa “@//” para el repositorio principal). No es necesario que el archivo tenga el nombre BUILD, pero puede tener el nombre (algo como BUILD.new-repo-name puede funcionar bien para distinguirlo de los archivos BUILD reales del repositorio. |
build_file_content |
Cadena (opcional)
El contenido del archivo Build de este repositorio. |
commit |
Cadena (opcional)
una confirmación específica que se va a comprobar. Se debe especificar precisamente uno de los valores de rama, etiqueta o confirmación. |
init_submodules |
Booleano; opcional
Establece si se deben clonar submódulos en el repositorio. |
patch_args |
Lista de cadenas (opcional)
Los argumentos proporcionados a la herramienta de parches. El valor predeterminado es -p0; sin embargo, -p1 suele ser necesario para los parches que genera git. Si se especifican varios argumentos -p, el último tendrá efecto.Si se especifican otros argumentos distintos de -p, Bazel recurrirá a la herramienta de línea de comandos de parches en lugar de la implementación de parches nativa de Bazel. Cuando recurras a la herramienta de línea de comandos del parche y no se especifica el atributo parche_herramienta, se utilizará “parche”. |
patch_cmds |
Lista de cadenas (opcional)
Secuencia de comandos de Bash que se aplicará en Linux/Macos después de aplicar los parches. |
patch_cmds_win |
Lista de cadenas (opcional)
Secuencia de comandos de PowerShell que se aplicarán en Windows después de aplicar los parches. Si no se establece este atributo, se ejecutará patch_cmds en Windows, lo que requiere que exista el objeto binario Bash. |
patch_tool |
Cadena (opcional)
La utilidad parche(1) que se usará. Si lo haces, Bazel usará la herramienta de parches especificada en lugar de la implementación de parches nativa de Bazel. |
patches |
Lista de etiquetas (opcional)
Una lista de los archivos que se aplicarán como parches después de extraerlo. De forma predeterminada, usa la implementación de parches nativa de Bazel que no admite la coincidencia de fuzz ni el parche binario, pero Bazel recurrirá a la herramienta de línea de comandos de parche si se especifica el atributo `patch_tool` o si hay argumentos distintos de `-p` en el atributo `patch_args`. |
recursive_init_submodules |
Booleano; opcional
Establece si se deben clonar submódulos de forma recursiva en el repositorio. |
remote |
String; obligatoria
El URI del repositorio remoto de Git |
repo_mapping |
Diccionario: String -> String; obligatorio
Un diccionario que va del nombre del repositorio local al nombre del repositorio global. Esto permite controlar la resolución de dependencias de lugares de trabajo para las dependencias de este repositorio. Por ejemplo, una entrada"@foo": "@bar"` declara que, en cualquier momento, este repositorio depende de `@foo` (por ejemplo, una dependencia de `@foo//some:target`, en realidad debería resolver esa dependencia dentro de `@bar`, declarada de manera global, `@bar//some:target`). |
shallow_since |
Cadena (opcional)
una fecha opcional, no posterior a la confirmación especificada; el argumento no está permitido si se especifica una etiqueta o rama (que siempre se puede clonar con --depth=1). Establecer una fecha cercana a la confirmación especificada puede permitir una clonación superficial del repositorio incluso si el servidor no admite recuperaciones superficiales de confirmaciones arbitrarias. Debido a errores en la implementación --shallow-desde de Git, no se recomienda usar este atributo, ya que puede provocar errores de recuperación. |
strip_prefix |
Cadena (opcional)
Un prefijo de directorio para quitar los archivos extraídos. |
tag |
Cadena (opcional)
en el repositorio remoto que se extraerán. Se debe especificar precisamente uno de los valores de rama, etiqueta o confirmación. |
verbose |
Booleano; opcional |
workspace_file |
Etiqueta (opcional)
El archivo que se usará como archivo `WORKSPACE` para este repositorio. Se puede especificar “workspace_file” o “workspace_file_content”, o ninguno, pero no ambos. |
workspace_file_content |
Cadena (opcional)
El contenido del archivo WORKSPACE de este repositorio. Se puede especificar “workspace_file” o “workspace_file_content”, o ninguno, pero no 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)
Clonar un repositorio de Git externo
Clona un repositorio de Git, verifica la etiqueta especificada o confirma, y pone sus destinos a disposición para la vinculación. Además, determina el ID de la confirmación que se verificó y su fecha, y muestra un diccionario con los parámetros que proporcionen una versión reproducible de esta regla (que no es necesariamente una etiqueta).
Bazel primero intentará realizar una recuperación superficial solo de la confirmación especificada. Si eso falla (por lo general, debido a la falta de compatibilidad del servidor), se recurrirá a una recuperación completa del repositorio.
Si prefieres http_archive
en lugar de git_repository
.
Estos son los motivos:
- Las reglas del repositorio de Git dependen del sistema
git(1)
, mientras que el cargador HTTP está compilado en Bazel y no tiene dependencias del sistema. http_archive
admite una lista deurls
como duplicaciones, ygit_repository
admite solo unaremote
.http_archive
funciona con la caché del repositorio, pero no congit_repository
. Consulta #5116 para obtener más información.
Atributos
name |
Name; obligatorio
Un nombre único para este repositorio. |
branch |
Cadena (opcional)
en la rama del repositorio remoto para extraerla. Se debe especificar precisamente uno de los valores de rama, etiqueta o confirmación. |
build_file |
Etiqueta (opcional)
El archivo que se usará como archivo de COMPILACIÓN para este repositorio.Este atributo es una etiqueta absoluta (usa “@//” para el repositorio principal). No es necesario que el archivo tenga el nombre BUILD, pero puede tener el nombre (algo como BUILD.new-repo-name puede funcionar bien para distinguirlo de los archivos BUILD reales del repositorio. |
build_file_content |
Cadena (opcional)
El contenido del archivo Build de este repositorio. |
commit |
Cadena (opcional)
una confirmación específica que se va a comprobar. Se debe especificar precisamente uno de los valores de rama, etiqueta o confirmación. |
init_submodules |
Booleano; opcional
Establece si se deben clonar submódulos en el repositorio. |
patch_args |
Lista de cadenas (opcional)
Los argumentos proporcionados a la herramienta de parches. El valor predeterminado es -p0; sin embargo, -p1 suele ser necesario para los parches que genera git. Si se especifican varios argumentos -p, el último tendrá efecto.Si se especifican otros argumentos distintos de -p, Bazel recurrirá a la herramienta de línea de comandos de parches en lugar de la implementación de parches nativa de Bazel. Cuando recurras a la herramienta de línea de comandos del parche y no se especifica el atributo parche_herramienta, se utilizará “parche”. |
patch_cmds |
Lista de cadenas (opcional)
Secuencia de comandos de Bash que se aplicará en Linux/Macos después de aplicar los parches. |
patch_cmds_win |
Lista de cadenas (opcional)
Secuencia de comandos de PowerShell que se aplicarán en Windows después de aplicar los parches. Si no se establece este atributo, se ejecutará patch_cmds en Windows, lo que requiere que exista el objeto binario Bash. |
patch_tool |
Cadena (opcional)
La utilidad parche(1) que se usará. Si lo haces, Bazel usará la herramienta de parches especificada en lugar de la implementación de parches nativa de Bazel. |
patches |
Lista de etiquetas (opcional)
Una lista de los archivos que se aplicarán como parches después de extraerlo. De forma predeterminada, usa la implementación de parches nativa de Bazel que no admite la coincidencia de fuzz ni el parche binario, pero Bazel recurrirá a la herramienta de línea de comandos de parche si se especifica el atributo `patch_tool` o si hay argumentos distintos de `-p` en el atributo `patch_args`. |
recursive_init_submodules |
Booleano; opcional
Establece si se deben clonar submódulos de forma recursiva en el repositorio. |
remote |
String; obligatoria
El URI del repositorio remoto de Git |
repo_mapping |
Diccionario: String -> String; obligatorio
Un diccionario que va del nombre del repositorio local al nombre del repositorio global. Esto permite controlar la resolución de dependencias de lugares de trabajo para las dependencias de este repositorio. Por ejemplo, una entrada"@foo": "@bar"` declara que, en cualquier momento, este repositorio depende de `@foo` (por ejemplo, una dependencia de `@foo//some:target`, en realidad debería resolver esa dependencia dentro de `@bar`, declarada de manera global, `@bar//some:target`). |
shallow_since |
Cadena (opcional)
una fecha opcional, no posterior a la confirmación especificada; el argumento no está permitido si se especifica una etiqueta o rama (que siempre se puede clonar con --depth=1). Establecer una fecha cercana a la confirmación especificada puede permitir una clonación superficial del repositorio incluso si el servidor no admite recuperaciones superficiales de confirmaciones arbitrarias. Debido a errores en la implementación --shallow-desde de Git, no se recomienda usar este atributo, ya que puede provocar errores de recuperación. |
strip_prefix |
Cadena (opcional)
Un prefijo de directorio para quitar los archivos extraídos. |
tag |
Cadena (opcional)
en el repositorio remoto que se extraerán. Se debe especificar precisamente uno de los valores de rama, etiqueta o confirmación. |
verbose |
Booleano; opcional |
workspace_file |
Etiqueta (opcional)
El archivo que se usará como archivo `WORKSPACE` para este repositorio. Se puede especificar “workspace_file” o “workspace_file_content”, o ninguno, pero no ambos. |
workspace_file_content |
Cadena (opcional)
El contenido del archivo WORKSPACE de este repositorio. Se puede especificar “workspace_file” o “workspace_file_content”, o ninguno, pero no ambos. |