Next: , Previous: , Up: Servicios   [Contents][Index]


12.9.30 Servicios de control de versiones

El módulo (gnu services version-control) proporciona un servicio para permitir el acceso remoto a repositorios Git locales. Existen tres opciones: el servicio git-daemon-service, que proporciona acceso a repositorios a través del protocolo inseguro basado en TCP git://, la extensión del servidor web nginx para redirigir algunas peticiones al motor git-http-backend, o una interfaz web proporcionada por el servicio cgit-service-type.

Procedimiento Scheme: git-daemon-service [#:config (git-daemon-configuration)]

Devuelve un servicio que ejecuta git daemon, un servidor TCP simple para exponer repositorios con el protocolo Git para acceso anónimo.

El parámetro opcional config debe ser un objeto <git-daemon-configuration>, de manera predeterminada permite acceso de solo lectura a los repositorios exportados43 bajo /srv/git.

Tipo de datos: git-daemon-configuration

Tipo de datos que representa la configuración para git-daemon-service.

package (predeterminado: git)

El objeto paquete del sistema distribuido de control de versiones Git.

export-all? (predeterminado: #f)

Determina si se permite el acceso a todos los repositorios Git, incluso si no tienen el archivo git-daemon-export-ok.

base-path (predeterminado: /srv/git)

Determina si se traducirán todas las rutas de las peticiones como relativas a la ruta proporcionada. Si se encuentra en ejecución el daemon de git con (base-path "/srv/git" en example.com, al realizar la solicitud de ‘git://example.com/hello.git’, el daemon de git interpretará la ruta como /srv/git/hello.git.

user-path (predeterminado: #f)

Determina si se permite el uso de la notación ~user en las peticiones. Si se especifica una cadena vacía, una peticione de ‘git://máquina/~alicia/algo’ se tomará como una petición de acceso al repositorio algo en el directorio de la usuaria alicia. Si se especifica (user-path "ruta"), la misma petición se traducirá en una petición de acceso al repositorio ruta/algo en el directorio de la usuaria alicia.

listen (predeterminadas: '())

Determina si se debe escuchar en direcciones IP o nombres de máquina específicos, de manera predeterminada escucha en cualquiera.

port (predeterminado: #f)

Determina si se escucha en un puerto alternativo, cuyo valor predeterminado es 9418.

whitelist (predeterminada: '())

Si no está vacío, únicamente permite el acceso a esta lista de directorios.

extra-options (predeterminadas: '())

Opciones adicionales que se proporcionan a git daemon, para obtener más información le rogamos que ejecute man git-daemon.

El protocolo git:// carece de verificación. Cuando se obtienen datos de un repositorio a través del protocolo git://, no puede tener plena confianza en que los datos que reciba procedan realmente de la máquina que ha indicado, y su conexión puede estar sujeta a interceptaciones. Es mejor usar un transporte verificado y cifrado, como https. Aunque Git le permite servir repositorios usando servidores web poco sofisticados basados en archivos, existe un protocolo más rápido implementado en el programa git-http-backend. Este programa es el motor de un servicio web de Git adecuado. Está diseñado para ejecutarse tras una pasarela FastCGI. See Servicios Web, para más información sobre la ejecución del daemon fcgiwrap necesario.

Guix tiene un tipo de datos de configuración distinto para proporcionar repositorios Git sobre HTTP.

Tipo de datos: git-http-configuration

Data type representing the configuration for a future git-http-service-type; can currently be used to configure Nginx through git-http-nginx-location-configuration.

package (predeterminado: git)

El objeto paquete del sistema distribuido de control de versiones Git.

git-root (predeterminada: /srv/git)

Directorio que contiene los repositorios Git que se expondrán al mundo.

export-all? (predeterminado: #f)

Determina si se expondrá el acceso a todos los repositorios en git-root, incluso si no contienen el archivo git-daemon-export-ok.

uri-path (predeterminada: ‘/git/’)

Prefijo de la ruta del acceso de Git. Con el prefijo predeterminado ‘/git/’, ‘http://servidor/git/repositorio.git’ se traducirá en /srv/git/repositorio.git. Las peticiones cuyas rutas URI no comiencen con dicho prefijo no se pasan a esta instancia de Git.

fcgiwrap-socket (predeterminado: 127.0.0.1:9000)

Socket en el que el daemon fcgiwrap escucha. See Servicios Web.

No existe actualmente git-http-service-type; en vez de eso puede crear una configuración nginx-location-configuration desde git-http-configuration y añadir dicha configuración al servidor web.

Procedimiento Scheme: git-http-nginx-location-configuration [config=(git-http-configuration)]

Calcula una configuración nginx-location-configuration que corresponde con la configuración http de Git proporcionada. Un ejemplo de definición de servicio nginx que ofrece el directorio predeterminado /srv/git sobre HTTPS podría ser:

(service nginx-service-type
         (nginx-configuration
          (server-blocks
           (list
            (nginx-server-configuration
             (listen '("443 ssl"))
             (server-name "git.mi-maquina.org")
             (ssl-certificate
              "/etc/letsencrypt/live/git.mi-maquina.org/fullchain.pem")
             (ssl-certificate-key
              "/etc/letsencrypt/live/git.mi-maquina.org/privkey.pem")
             (locations
              (list
               (git-http-nginx-location-configuration
                (git-http-configuration (uri-path "/"))))))))))

This example assumes that you are using Let’s Encrypt to get your TLS certificate. See Servicios de certificados. The default certbot service will redirect all HTTP traffic on git.my-host.org to HTTPS. You will also need to add an fcgiwrap proxy to your system services. See Servicios Web.

Servicio Cgit

Cgit es un servidor de fachada para repositiorios Git escrito en C.

El ejemplo siguiente configura el servicio con los valores predeterminados. Por omisión, se puede acceder a Cgit en el puerto 80 (http://localhost:80).

(service cgit-service-type)

El tipo file-object designa o bien un objeto “tipo-archivo” (see objetos “tipo-archivo”), o bien una cadena.

Los campos disponibles de cgit-configuration son:

parámetro de cgit-configuration: package package

El paquete CGIT.

parámetro de cgit-configuration: lista-nginx-server-configuration nginx

Configuración de NGINX.

parámetro de cgit-configuration: file-object about-filter

Especifica una orden que se llamará para dar formato al contenido de las páginas “about” (tanto al nivel superior como cada repositorio).

El valor predeterminado es ‘""’.

parámetro de cgit-configuration: string agefile

Especifica una ruta, relativa a cada ruta de repositorio, que puede usarse para especificar una fecha y hora de la revisión más reciente del repositorio.

El valor predeterminado es ‘""’.

parámetro de cgit-configuration: file-object auth-filter

Especifica una orden que se invocará para la validación de acceso al repositorio.

El valor predeterminado es ‘""’.

parámetro de cgit-configuration: string branch-sort

Opción que, cuando tiene valor ‘age’, activa la ordenación por fecha en la lista de referencias de ramas, y cuando tiene valor ‘name’ activa la ordenación por nombre de rama.

El valor predeterminado es ‘"name"’.

parámetro de cgit-configuration: string cache-root

Ruta usada para el almacenamiento de las entradas de caché de cgit.

El valor predeterminado es ‘"/var/cache/cgit"’.

parámetro de cgit-configuration: integer cache-static-ttl

Número que especifica el tiempo de vida, en minutos, de la versión en caché de las páginas del repositiorio accedidas mediante un hash SHA1 fijo.

El valor predeterminado es ‘-1’.

parámetro de cgit-configuration: integer cache-dynamic-ttl

Número que especifica el tiempo de vida, en minutos, de la versión en caché de las páginas del repositorio accedidas sin un hash SHA1 fijo.

El valor predeterminado es ‘5’.

parámetro de cgit-configuration: integer cache-repo-ttl

Número que especifica el tiempo de vida, en minutos, de la versión en caché de la página de resumen del repositorio.

El valor predeterminado es ‘5’.

parámetro de cgit-configuration: integer cache-root-ttl

Número que especifica el tiempo de vida, en minutos, de la versión en caché de la página del índice de repositorios.

El valor predeterminado es ‘5’.

parámetro de cgit-configuration: integer cache-scanrc-ttl

Número que especifica el tiempo de vida, en minutos, para el resultado de la búsqueda en una ruta para repositorios Git.

El valor predeterminado es ‘15’.

parámetro de cgit-configuration: integer cache-about-ttl

Número que especifica el tiempo de vida, en minutos, de la versión en caché de la página de información del repositorio.

El valor predeterminado es ‘15’.

parámetro de cgit-configuration: integer cache-snapshot-ttl

Número que especifica el tiempo de vida, en minutos, de la versión en caché de las instantáneas.

El valor predeterminado es ‘5’.

parámetro de cgit-configuration: integer cache-size

El número máximo de entradas en la caché de cgit. Cuando el valor es ‘0’, se desactiva el almacenamiento en caché.

El valor predeterminado es ‘0’.

parámetro de cgit-configuration: boolean case-sensitive-sort?

Ordena los elementos en la lista del repositorio diferenciando las mayúsculas.

El valor predeterminado es ‘#t

parámetro de cgit-configuration: lista clone-prefix

Lista de prefijos comunes que, cuando se combinen con la URL de un repositorio, generan una URL que permite el clonado del repositorio.

El valor predeterminado es ‘()’.

parámetro de cgit-configuration: lista clone-url

Lista de plantillas clone-url.

El valor predeterminado es ‘()’.

parámetro de cgit-configuration: file-object commit-filter

Orden ejecutada para el formato de mensajes de revisión.

El valor predeterminado es ‘""’.

parámetro de cgit-configuration: string commit-sort

Opción que, cuando tiene valor ‘date’, activa la ordenación estricta por fecha en el registro histórico de revisiones, y cuando tiene valor ‘topo’ activa la ordenación estricta topológica.

El valor predeterminado es ‘"git log"’.

parámetro de cgit-configuration: file-object css

URL que especifica el documento css incluido en todas las páginas de cgit.

El valor predeterminado es ‘"/share/cgit/cgit.css"’.

parámetro de cgit-configuration: file-object email-filter

Especifica una orden que se llamará para dar formato a los nombres y las direcciones de correo electrónico de las revisoras, autoras y etiquetadoras con el que se representarán en varios lugares de la interfaz cgit.

El valor predeterminado es ‘""’.

parámetro de cgit-configuration: boolean embedded?

Opción que, cuando tiene valor ‘#t’, hace que cgit genere un fragmento HTML adecuado para embeberse en otras páginas HTML.

El valor predeterminado es ‘#f

parámetro de cgit-configuration: boolean enable-commit-graph?

Opción que, cuando tiene el valor ‘#t’, hace que cgit imprima un grafo histórico de la revisión de arte ASCII a la izquierda de los mensajes de revisión en la página del histórico del repositorio.

El valor predeterminado es ‘#f

parámetro de cgit-configuration: boolean enable-filter-overrides?

Opción que, cuando tiene valor ‘#t’, permite que todas las configuraciones de filtros se sustituyan en los archivos cgitrc específicos del repositorio.

El valor predeterminado es ‘#f

Opción que, cuando tiene valor ‘#t’, permite a las usuarias seguir un archivo en la vista de registro (log).

El valor predeterminado es ‘#f

parámetro de cgit-configuration: boolean enable-http-clone?

Si se proporciona ‘#t’, cgit actuará como un simple servidor HTTP para los clones de Git.

El valor predeterminado es ‘#t

Opción que, cuando tiene valor ‘#t’, hace que cgit genere enlaces adicionales "summary" (resumen), "commit" (revisión) y "tree" (árbol) para cada repositorio en el índice de repositorios.

El valor predeterminado es ‘#f

parámetro de cgit-configuration: boolean enable-index-owner?

Opción que, cuando tiene valor ‘#t’, hace que cgit muestre la propietaria de cada repositorio en el índice del repositorios.

El valor predeterminado es ‘#t

parámetro de cgit-configuration: boolean enable-log-filecount?

Opción que, cuando se proporciona el valor ‘#t’, hace que cgit imprima el número de archivos modificados por cada revisión en la página de registro histórico del repositorio ("log").

El valor predeterminado es ‘#f

parámetro de cgit-configuration: boolean enable-log-linecount?

Opción que, cuando se proporciona el valor ‘#t’, hace que cgit imprima el número de líneas añadidas y eliminadas en cada revisión en la página de registro histórico ("log").

El valor predeterminado es ‘#f

parámetro de cgit-configuration: boolean enable-remote-branches?

Opción que, cuando se proporciona el valor ‘#t’, hace que cgit muestre ramas remotas en las vistas de resumen ("summary") y de referencias ("refs").

El valor predeterminado es ‘#f

Opción que, cuando se proporciona el valor 1, hace que cgit use el asunto de la revisión previa como texto del enlace cuando se generen enlaces a revisiones previas en la vista de la revisión.

El valor predeterminado es ‘#f

parámetro de cgit-configuration: boolean enable-html-serving?

Opción que, cuando se proporciona el valor ‘#t’, hace que cgit use el asunto de la revisión previa como texto del enlace cuando se generen enlaces a revisiones previas en la vista de la revisión.

El valor predeterminado es ‘#f

parámetro de cgit-configuration: boolean enable-tree-linenumbers?

Opción que, cuando se proporciona el valor ‘#t’, hace que cgit genere enlaces de números de línea para los archivos (blob) de texto plano impresos en la vista de árbol.

El valor predeterminado es ‘#t

parámetro de cgit-configuration: boolean enable-git-config?

Opción que, cuando tiene valor ‘#f’, permite que cgit use la configuración de Git para fijar el valor de cualquier opción específica del repositorio.

El valor predeterminado es ‘#f

parámetro de cgit-configuration: file-object favicon

URL usada para icono de los enlaces a cgit.

El valor predeterminado es ‘"/favicon.ico"’.

El contenido del archivo especificado con esta opción se incluirá literalmente en la parte inferior de todas las páginas (es decir, sustituye al mensaje estándar "generated by...").

El valor predeterminado es ‘""’.

parámetro de cgit-configuration: string head-include

El contenido del archivo especificado con esta opción se incluirá literalmente en la sección HEAD de HTML en todas las páginas.

El valor predeterminado es ‘""’.

parámetro de cgit-configuration: string header

El contenido del archivo especificado con esta opción se incluirá literalmente en la parte superior de todas las páginas.

El valor predeterminado es ‘""’.

parámetro de cgit-configuration: file-object include

Nombre de un archivo de configuración que debe incluirse antes de procesar el resto del archivo de configuración actual.

El valor predeterminado es ‘""’.

parámetro de cgit-configuration: string index-header

El contenido del archivo especificado en esta opción se incluirá literalmente sobre el índice de repositorios.

El valor predeterminado es ‘""’.

parámetro de cgit-configuration: string index-info

El contenido del archivo especificado con esta opción se incluirá de manera literal bajo la cabecera en la página de índice del repositorio.

El valor predeterminado es ‘""’.

parámetro de cgit-configuration: boolean local-time?

Opción que, cuando tiene valor ‘#t’, hace que cgit imprima las fechas de revisión y etiqueta en la zona horaria del servidor.

El valor predeterminado es ‘#f

URL que especifica la fuente de una imagen usada como logo en todas las páginas de cgit.

El valor predeterminado es ‘"/share/cgit/cgit.png"’.

URL que se carga al pulsar la imagen del logo de cgit.

El valor predeterminado es ‘""’.

parámetro de cgit-configuration: file-object owner-filter

Orden que se ejecuta para dar formato a la columna de propietaria (Owner) de la página principal.

El valor predeterminado es ‘""’.

parámetro de cgit-configuration: integer max-atom-items

Número de elementos a mostrar en la vista de “atom feeds”.

El valor predeterminado es ‘10’.

parámetro de cgit-configuration: integer max-commit-count

Número de entradas a mostrar por página en la vista del registro histórico ("log").

El valor predeterminado es ‘50’.

parámetro de cgit-configuration: integer max-message-length

Número de caracteres del mensaje de la revisión a mostrar en la vista del registro histórico ("log").

El valor predeterminado es ‘80’.

parámetro de cgit-configuration: integer max-repo-count

Especifica el número de entradas a mostrar por página en la página de índice de repositorios.

El valor predeterminado es ‘50’.

parámetro de cgit-configuration: integer max-repodesc-length

Especifica el número máximo de caracteres mostrados en la descripción del repositorio en la página del índice de repositorios.

El valor predeterminado es ‘80’.

parámetro de cgit-configuration: integer max-blob-size

Especifica el tamaño máximo de un archivo (blob) para mostrarlo en HTML en kilobytes.

El valor predeterminado es ‘0’.

parámetro de cgit-configuration: string max-stats

Periodo estadístico máximo. Son valores aceptados ‘week’, ‘month’, ‘quarter’ and ‘year’.

El valor predeterminado es ‘""’.

parámetro de cgit-configuration: mimetype-alist mimetype

Tipo MIME para la extensión de archivo especificada.

El valor predeterminado es ‘((gif "image/gif") (html "text/html") (jpg "image/jpeg") (jpeg "image/jpeg") (pdf "application/pdf") (png "image/png") (svg "image/svg+xml"))’.

parámetro de cgit-configuration: file-object mimetype-file

Especifica el archivo usado para la búsqueda automática de tipos MIME.

El valor predeterminado es ‘""’.

Texto que se usará como la cadena de formato para un enlace cuando un submódulo se imprime en el listado del directorio.

El valor predeterminado es ‘""’.

parámetro de cgit-configuration: boolean nocache?

Si se proporciona el valor ‘#t’, se desactiva la caché.

El valor predeterminado es ‘#f

parámetro de cgit-configuration: boolean noplainemail?

Si se proporciona ‘#t’, se desactiva la impresión de direcciones de correo completas de las autoras.

El valor predeterminado es ‘#f

parámetro de cgit-configuration: boolean noheader?

Opción que, cuando tiene valor ‘#t’, hace que cgit omita la cabecera estándar en todas las páginas.

El valor predeterminado es ‘#f

parámetro de cgit-configuration: lista-proyectos project-list

Una lista de subdirectorios dentro de repository-directory, relativa a él, que debe cargarse como repositorios Git. La lista vacía significa que se cargarán todos los subdirectorios.

El valor predeterminado es ‘()’.

parámetro de cgit-configuration: file-object readme

Texto usado como valor predeterminado para cgit-repo-readme.

El valor predeterminado es ‘""’.

parámetro de cgit-configuration: boolean remove-suffix?

Si se proporciona #t y repository-directory está activo, si se encuentra algún repositorio con el sufijo .git, se elimina dicho sufijo de la URL y del nombre.

El valor predeterminado es ‘#f

parámetro de cgit-configuration: integer renamelimit

Número máximo de archivos considerados durante la detección de renombrados.

El valor predeterminado es ‘-1’.

parámetro de cgit-configuration: string repository-sort

La forma de ordenar los repositorios de cada sección.

El valor predeterminado es ‘""’.

parámetro de cgit-configuration: lista-robots robots

Texto usado como contenido de la meta-etiqueta robots.

El valor predeterminado es ‘("noindex" "nofollow")’.

parámetro de cgit-configuration: string root-desc

Texto impreso bajo la cabecera en la página de índice del repositorio.

El valor predeterminado es ‘"a fast webinterface for the git dscm"’.<

parámetro de cgit-configuration: string root-readme

El contenido del archivo especificado con esta opción se incluirá de manera literal tras el enlace de información del repositorio (“about”) en la página de índice del repositorio.

El valor predeterminado es ‘""’.

parámetro de cgit-configuration: string root-title

Texto impreso como cabecera en la página de índice del repositorio.

El valor predeterminado es ‘""’.

parámetro de cgit-configuration: boolean scan-hidden-path

Si se proporciona ‘#t’ y repository-directory está activo, repository-directory recorrerá recursivamente los directorios cuyos nombres comiencen por punto. En otro caso, repository-directory no tendrá en cuenta dichos directorios, considerados ocultos (“hidden”). Tenga en cuenta que esto no incluye al directorio .git en repositorios con una copia de trabajo.

El valor predeterminado es ‘#f

parámetro de cgit-configuration: lista snapshots

Texto que especifica el conjunto predeterminado de formatos de instantánea para los que cgit genera enlaces.

El valor predeterminado es ‘()’.

parámetro de cgit-configuration: directorio-repositorio repository-directory

Nombre del directorio en el que se buscarán repositorios (representa scan-path).

El valor predeterminado es ‘"/srv/git"’.

parámetro de cgit-configuration: string section

Nombre actual de la sección de repositorios - todos los repositorios definidos tras esta opción heredarán el nombre actual de sección.

El valor predeterminado es ‘""’.

parámetro de cgit-configuration: string section-sort

Opción que, cuando tiene valor ‘1’, ordenará las secciones en el listado de repositorios por nombre.

El valor predeterminado es ‘""’.

parámetro de cgit-configuration: integer section-from-path

Número que, si se define antes de repository-directory, especifica cuantos elementos de ruta de cada ruta de repositorio se usarán como nombre de sección predeterminado.

El valor predeterminado es ‘0’.

parámetro de cgit-configuration: boolean side-by-side-diffs?

Si se proporciona el valor ‘#t’ se muestran las diferencias lado a lado en vez de usar el formato universal de manera predeterminada.

El valor predeterminado es ‘#f

parámetro de cgit-configuration: file-object source-filter

Especifica la orden que se ejecutará para dar formato a los archivos (blob) de texto plano en la vista de árbol.

El valor predeterminado es ‘""’.

parámetro de cgit-configuration: integer summary-branches

Especifica el número de ramas mostradas en la vista resumen (“summary”) del repositorio.

El valor predeterminado es ‘10’.

parámetro de cgit-configuration: integer summary-log

Especifica el número de entradas del registro mostradas en la vista resumen (“summary”) del repositorio.

El valor predeterminado es ‘10’.

parámetro de cgit-configuration: integer summary-tags

Especifica el número que etiquetas que se mostrarán en la vista resumen (“summary”) del repositorio.

El valor predeterminado es ‘10’.

parámetro de cgit-configuration: string strict-export

Nombre de archivo que, en caso de especificarse, debe estar presente en el repositiorio para que se permita el acceso de cgit a dicho repositorio.

El valor predeterminado es ‘""’.

parámetro de cgit-configuration: string virtual-root

URL que, en caso de especificarse, se usará como raíz de todos los enlaces de cgit.

El valor predeterminado es ‘"/"’.

parámetro de cgit-configuration: lista-repository-cgit-configuration repositories

Lista de registros cgit-repo usados con la configuración.

El valor predeterminado es ‘()’.

Los campos disponibles de repository-cgit-configuration son:

parámetro de repository-cgit-configuration: repo-list snapshots

Una máscara de los formatos de instantánea para este repositorio para los que cgit genera enlaces, restringida por la opción de configuración global snapshots.

El valor predeterminado es ‘()’.

parámetro de repository-cgit-configuration: repo-file-object source-filter

Sustituye al valor predeterminado de source-filter.

El valor predeterminado es ‘""’.

parámetro de repository-cgit-configuration: repo-string url

La URL relativa usada para el acceso al repositorio.

El valor predeterminado es ‘""’.

parámetro de repository-cgit-configuration: repo-file-object about-filter

Sustituye al valor predeterminado de about-filter.

El valor predeterminado es ‘""’.

parámetro de repository-cgit-configuration: repo-string branch-sort

Cuando se proporciona el valor ‘age’, activa la ordenación por fecha en la lista de referencias de ramas, y cuando se proporciona ‘name’ se activa la ordenación por nombre de rama.

El valor predeterminado es ‘""’.

parámetro de repository-cgit-configuration: repo-list clone-url

Una lista de URL que se pueden usar para clonar el repositorio.

El valor predeterminado es ‘()’.

parámetro de repository-cgit-configuration: repo-file-object commit-filter

Sustituye al valor predeterminado de commit-filter.

El valor predeterminado es ‘""’.

parámetro de repository-cgit-configuration: repo-string commit-sort

Opción que, cuando tiene valor ‘date’, activa la ordenación estricta por fecha en el registro histórico de revisiones, y cuando tiene valor ‘topo’ activa la ordenación estricta topológica.

El valor predeterminado es ‘""’.

parámetro de repository-cgit-configuration: repo-string defbranch

Nombre de la rama predeterminada de este repositorio. Si no existe dicha rama en el repositorio, se usará como predeterminado el primer nombre de rama encontrado (tras su ordenación). De manera predeterminada, la rama a la que apunta HEAD, o “master” si no existe un valor adecuado para HEAD.

El valor predeterminado es ‘""’.

parámetro de repository-cgit-configuration: repo-string desc

El valor a mostrar como descripción del repositorio.

El valor predeterminado es ‘""’.

parámetro de repository-cgit-configuration: repo-string homepage

El valor a mostrar como página web principal del repositorio.

El valor predeterminado es ‘""’.

parámetro de repository-cgit-configuration: repo-file-object email-filter

Sustituye al valor predeterminado de email-filter.

El valor predeterminado es ‘""’.

parámetro de repository-cgit-configuration: maybe-repo-boolean enable-commit-graph?

Esta opción se puede usar para forzar el valor de la opción de configuración global enable-commit-graph?.

El valor predeterminado es ‘disabled’.

parámetro de repository-cgit-configuration: maybe-repo-boolean enable-log-filecount?

Esta opción se puede usar para forzar el valor de la opción de configuración global enable-log-filecount?.

El valor predeterminado es ‘disabled’.

parámetro de repository-cgit-configuration: maybe-repo-boolean enable-log-linecount?

Esta opción se puede usar para forzar el valor de la opción de configuración global enable-log-linecount?.

El valor predeterminado es ‘disabled’.

parámetro de repository-cgit-configuration: maybe-repo-boolean enable-remote-branches?

Opción que, cuando se proporciona el valor ‘#t’, hace que cgit muestre ramas remotas en las vistas de resumen ("summary") y de referencias ("refs").

El valor predeterminado es ‘disabled’.

Esta opción se puede usar para forzar el valor de la opción de configuración global enable-subject-links?.

El valor predeterminado es ‘disabled’.

parámetro de repository-cgit-configuration: maybe-repo-boolean enable-html-serving?

Esta opción se puede usar para forzar el valor de la opción de configuración global enable-html-serving?.

El valor predeterminado es ‘disabled’.

parámetro de repository-cgit-configuration: repo-boolean hide?

Opción que, cuando tiene valor ‘#t’, oculta el repositorio en el índice.

El valor predeterminado es ‘#f

parámetro de repository-cgit-configuration: repo-boolean ignore?

Opción que, cuando tiene valor ‘#t’, ignora el repositorio.

El valor predeterminado es ‘#f

parámetro de repository-cgit-configuration: repo-file-object logo

URL que especifica la fuente de una imagen que se usará como logo en las páginas de este repositorio.

El valor predeterminado es ‘""’.

URL que se carga al pulsar la imagen del logo de cgit.

El valor predeterminado es ‘""’.

parámetro de repository-cgit-configuration: repo-file-object owner-filter

Sustituye al valor predeterminado de owner-filter.

El valor predeterminado es ‘""’.

Texto que se usará como la cadena de formato de un enlace cuando un submódulo se imprima en el listado de un directorio. Los parámetros para la cadena de formato son la ruta y el SHA1 de la revisión del submódulo.

El valor predeterminado es ‘""’.

Texto que se usará como la cadena de formato de un enlace cuando un submódulo con la ruta de subdirectorio especificada se imprima en el listado de un directorio.

El valor predeterminado es ‘()’.

parámetro de repository-cgit-configuration: repo-string max-stats

Sustituye al máximo periodo estadístico predeterminado.

El valor predeterminado es ‘""’.

parámetro de repository-cgit-configuration: repo-string name

El valor a mostrar como nombre del repositorio.

El valor predeterminado es ‘""’.

parámetro de repository-cgit-configuration: repo-string owner

Un valor usado para identificar a la propietaria del repositorio.

El valor predeterminado es ‘""’.

parámetro de repository-cgit-configuration: repo-string path

La ruta absoluta al directorio del repositorio.

El valor predeterminado es ‘""’.

parámetro de repository-cgit-configuration: repo-string readme

Una ruta (relativa al repositorio) que especifica un archivo que será incluido literalmente como página de información (“About”) de este repositorio.

El valor predeterminado es ‘""’.

parámetro de repository-cgit-configuration: repo-string section

Nombre actual de la sección de repositorios - todos los repositorios definidos tras esta opción heredarán el nombre actual de sección.

El valor predeterminado es ‘""’.

parámetro de repository-cgit-configuration: repo-list extra-options

Opciones adicionales a agregar al final del archivo cgitrc.

El valor predeterminado es ‘()’.

parámetro de cgit-configuration: lista extra-options

Opciones adicionales a agregar al final del archivo cgitrc.

El valor predeterminado es ‘()’.

No obstante, puede ser que únicamente desee usar un archivo cgitrc existente. En ese caso, puede proporcionar opaque-cgit-configuration como un registro a cgit-service-type. Como su nombre en inglés indica, una configuración opaca no tiene gran capacidad reflexiva.

Los campos disponibles de opaque-cgit-configuration son:

parámetro de opaque-cgit-configuration: package cgit

El paquete cgit.

parámetro de opaque-cgit-configuration: string string

El contenido de cgitrc, como una cadena.

Por ejemplo, si su cgitrc es simplemente la cadena vacía, puede instanciar un servicio cgit de esta manera:

(service cgit-service-type
         (opaque-cgit-configuration
          (cgitrc "")))

Servicio Gitolite

Gitolite es una herramienta para el almacenamiento de repositorios Git en un servidor central.

Gitolite puede manejar múltiples repositorios y usuarias, y permite una configuración flexible de los permisos de las usuarias sobre los repositorios.

El siguiente ejemplo configuraría Gitolite con la usuaria predeterminada git y la clave pública SSH proporcionada.

(service gitolite-service-type
         (gitolite-configuration
           (admin-pubkey (plain-file
                           "sunombre.pub"
                           "ssh-rsa AAAA... guix@example.com"))))

Gitolite se configura a través de un repositorio de administración especial que puede clonar, por ejemplo, si configuró Gitolite en example.org, ejecutaría la siguiente orden para clonar el repositorio de administración.

git clone git@example.com:gitolite-admin

Cuando se activa el servicio Gitolite, la clave admin-pubkey proporcionada se insertará en el directorio keydir en el repositorio gitolite-admin. Si esto resultase en un cambio en el repositorio, la revisión se almacenaría con el mensaje “gitolite setup by GNU Guix”.

Tipo de datos: gitolite-configuration

Tipo de datos que representa la configuración de gitolite-service-type.

package (predeterminado: gitolite)

Gitolite package to use. There are optional Gitolite dependencies that are not included in the default package, such as Redis and git-annex. These features can be made available by using the make-gitolite procedure in the (gnu packages version-control) module to produce a variant of Gitolite with the desired additional dependencies.

The following code returns a package in which the Redis and git-annex programs can be invoked by Gitolite’s scripts:

(use-modules (gnu packages databases)
             (gnu packages haskell-apps)
             (gnu packages version-control))
(make-gitolite (list redis git-annex))
user (predeterminada: git)

Usuaria usada por Gitolite. Esta será la usuaria a la que se conectará cuando acceda a Gitolite a través de SSH.

group (predeterminado: git)

Grupo usado por Gitolite.

home-directory (predeterminado: "/var/lib/gitolite")

Directorio en el que se almacenará la configuración y repositorios de Gitolite.

rc-file (predeterminado: (gitolite-rc-file))

Un objeto “tipo-archivo” (see objetos “tipo-archivo”), que representa la configuración de Gitolite.

admin-pubkey (predeterminada: #f)

Un objeto “tipo-archivo” (see objetos “tipo-archivo”) usado para la configuración de Gitolite. Se insertará en el directorio keydir dentro del repositorio gitolite-admin.

Para especificar la clave SSH como una cadena, use la función plain-file.

(plain-file "sunombre.pub" "ssh-rsa AAAA... guix@example.com")
Tipo de datos: gitolite-rc-file

Tipo de datos que representa el archivo RC de Gitolite.

umask (predeterminada: #o0077)

Controla los permisos que Gitolite establece en los repositorios y sus contenidos.

A value like #o0027 will give read access to the group used by Gitolite (by default: git). This is necessary when using Gitolite with software like cgit or gitweb.

local-code (default: "$rc{GL_ADMIN_BASE}/local")

Allows you to add your own non-core programs, or even override the shipped ones with your own.

Please supply the FULL path to this variable. By default, directory called "local" in your gitolite clone is used, providing the benefits of versioning them as well as making changes to them without having to log on to the server.

unsafe-pattern (default: #f)

An optional Perl regular expression for catching unsafe configurations in the configuration file. See Gitolite’s documentation for more information.

When the value is not #f, it should be a string containing a Perl regular expression, such as ‘"[`~#\$\&()|;<>]"’, which is the default value used by gitolite. It rejects any special character in configuration that might be interpreted by a shell, which is useful when sharing the administration burden with other people that do not otherwise have shell access on the server.

git-config-keys (predeterminadas: "")

Gitolite allows you to set git config values using the ‘config’ keyword. This setting allows control over the config keys to accept.

roles (predeterminados: '(("READERS" . 1) ("WRITERS" . )))

Establece los nombres de rol que se permite usar a las usuarias que ejecuten la orden perms.

enable (predeterminados: '("help" "desc" "info" "perms" "writable" "ssh-authkeys" "git-config" "daemon" "gitweb"))

Esta configuración controla las órdenes y características activadas dentro de Gitolite.

Gitile Service

Gitile is a Git forge for viewing public git repository contents from a web browser.

Gitile works best in collaboration with Gitolite, and will serve the public repositories from Gitolite by default. The service should listen only on a local port, and a webserver should be configured to serve static resources. The gitile service provides an easy way to extend the Nginx service for that purpose (see NGINX).

The following example will configure Gitile to serve repositories from a custom location, with some default messages for the home page and the footers.

(service gitile-service-type
         (gitile-configuration
           (repositories "/srv/git")
           (base-git-url "https://myweb.site/git")
           (index-title "My git repositories")
           (intro '((p "This is all my public work!")))
           (footer '((p "This is the end")))
           (nginx-server-block
             (nginx-server-configuration
               (ssl-certificate
                 "/etc/letsencrypt/live/myweb.site/fullchain.pem")
               (ssl-certificate-key
                 "/etc/letsencrypt/live/myweb.site/privkey.pem")
               (listen '("443 ssl http2" "[::]:443 ssl http2"))
               (locations
                 (list
                   ;; Allow for https anonymous fetch on /git/ urls.
                   (git-http-nginx-location-configuration
                     (git-http-configuration
                       (uri-path "/git/")
                       (git-root "/var/lib/gitolite/repositories")))))))))

In addition to the configuration record, you should configure your git repositories to contain some optional information. First, your public repositories need to contain the git-daemon-export-ok magic file that allows Git to export the repository. Gitile uses the presence of this file to detect public repositories it should make accessible. To do so with Gitolite for instance, modify your conf/gitolite.conf to include this in the repositories you want to make public:

repo foo
    R = daemon

In addition, Gitile can read the repository configuration to display more information on the repository. Gitile uses the gitweb namespace for its configuration. As an example, you can use the following in your conf/gitolite.conf:

repo foo
    R = daemon
    desc = A long description, optionally with <i>HTML</i>, shown on the index page
    config gitweb.name = The Foo Project
    config gitweb.synopsis = A short description, shown on the main page of the project

Do not forget to commit and push these changes once you are satisfied. You may need to change your gitolite configuration to allow the previous configuration options to be set. One way to do that is to add the following service definition:

(service gitolite-service-type
          (gitolite-configuration
            (admin-pubkey (local-file "key.pub"))
            (rc-file
              (gitolite-rc-file
                (umask #o0027)
                ;; Allow to set any configuration key
                (git-config-keys ".*")
                ;; Allow any text as a valid configuration value
                (unsafe-patt "^$")))))
Data Type: gitile-configuration

Data type representing the configuration for gitile-service-type.

package (default: gitile)

Gitile package to use.

host (predeterminado: "localhost")

The host on which gitile is listening.

port (default: 8080)

The port on which gitile is listening.

database (default: "/var/lib/gitile/gitile-db.sql")

The location of the database.

repositories (default: "/var/lib/gitolite/repositories")

The location of the repositories. Note that only public repositories will be shown by Gitile. To make a repository public, add an empty git-daemon-export-ok file at the root of that repository.

base-git-url

The base git url that will be used to show clone commands.

index-title (default: "Index")

The page title for the index page that lists all the available repositories.

intro (default: '())

The intro content, as a list of sxml expressions. This is shown above the list of repositories, on the index page.

footer (default: '())

The footer content, as a list of sxml expressions. This is shown on every page served by Gitile.

nginx-server-block

An nginx server block that will be extended and used as a reverse proxy by Gitile to serve its pages, and as a normal web server to serve its assets.

You can use this block to add more custom URLs to your domain, such as a /git/ URL for anonymous clones, or serving any other files you would like to serve.


Footnotes

(43)

Mediante la creación del archivo mágico git-daemon-export-ok en el directorio del repositorio.


Next: Servicios de juegos, Previous: Servicios de virtualización, Up: Servicios   [Contents][Index]