Suivant: , Précédent: , Monter: Services   [Table des matières][Index]


12.9.30 Services de contrôle de version

Le module (gnu services version-control) fournit un service pour permettre l’accès à distance à des dépôts Git locaux. Il y a trois options : en utilisant git-daemon-service qui fournit un accès aux dépôts via le protocole non sécurisé git:// basé sur TCP, en étendant le serveur web nginx pour relayer les requêtes vers git-http-backend ou en fournissant une interface web avec cgit-service-type.

Procédure Scheme :git-daemon-service [#:config (git-daemon-configuration)]

Renvoie un service qui lance git daemon, un serveur TCP simple pour exposer des dépôts sur le protocole Git pour des accès anonymes.

L’argument facultatif config devrait être un objet <git-daemon-configuration>, par défaut il permet l’accès en lecture-seule aux dépôts exportés35 dans /srv/git.

Type de données :git-daemon-configuration

Type de données représentnt la configuration de git-daemon-service.

package (par défaut : git)

Objet de paquet du système de contrôle de version distribué Git.

export-all? (par défaut : #f)

Indique s’il faut permettre l’accès à tous les dépôts Git, même s’ils n’ont pas le fichier git-daemon-export-ok.

base-path (par défaut : /srv/git)

Indique s’il faut traduire toutes les requêtes de chemins relativement au chemin actuel. Si vous lancez git daemon avec (base-path "/srv/git") sur ‘example.com’, et que vous essayez ensuite de récupérer ‘git://example.com/hello.git’, le démon git interprètera ce chemin comme étant /srv/git/hello.git.

user-path (par défaut : #f)

Indique s’il faut permettre la notation ~user dans les requêtes. Lorsque spécifié avec une chaine vide, les requêtes à ‘git://host/~alice/toto’ sont des requêtes d’accès au dépôt toto dans le répertoire personnel de l’utilisateur alice. Si (user-path "chemin") est spécifié, la même requête est interprétée comme accédant au répertoire chemin/foo dans le répertoire personnel de l’utilisateur alice.

listen (par défaut : '())

Indique s’il faut écouter sur des adresses IP ou des noms d’hôtes particuliers, par défaut tous.

port (par défaut : #f)

Indique s’il faut écouter sur un port particulier, par défaut le 9418.

whitelist (par défaut : '())

Si la liste n’est pas vide, n’autoriser l’accès qu’aux dossiers spécifiés.

extra-options (par défaut : '())

Options supplémentaires qui seront passées à git daemon, lancez man git-daemon pour plus d’informations.

Le protocole git:// ne permet pas l’authentification. Lorsque vous récupérez un dépôt via git://, vous ne pouvez pas savoir si les données que vous recevez ont été modifiées ou si elles viennent bien de l’hôte spécifié, et votre connexion pourrait être espionnée. Il est préférable d’utiliser un protocole de transport authentifié et chiffré, comme https. Bien que Git vous permette de servir des dépôts avec un serveur web peu sophistiqué basé sur les fichiers, il y a un protocole plus rapide implémenté par le programme git-http-backend. Ce programme est le moteur des services web Git corrects. Il est conçu pour se trouver derrière un mandataire FastCGI. Voir Services web pour plus d’informations sur la manière de lancer le démon fcgiwrap nécessaire.

Guix a un type de données de configuration séparé pour servir des dépôts Git par HTTP.

Type de données :git-http-configuration

Type de données représentant la configuration d’un futur git-http-service-type ; il peut actuellement être utilisé pour configurer Nginx à travers git-http-nginx-location-configuration.

package (par défaut : git)

Objet de paquet du système de contrôle de version distribué Git.

git-root (par défaut : /srv/git)

Répertoire contenant les dépôts Git à exposer au monde.

export-all? (par défaut : #f)

Indique s’il faut exposer l’accès de tous les dépôts Git dans git-root, même s’ils n’ont pas le fichier git-daemon-export-ok.

uri-path (par défaut : ‘/git/’)

Préfixe du chemin pour l’accès Git. Avec le préfixe ‘/git/’ par défaut, cela traduira ‘http://server/git/repo.git’ en /srv/git/repo.git. Les requêtes dont les chemins d’URI ne commencent pas par ce préfixe ne seront pas passées à cette instance de Git.

fcgiwrap-socket (par défaut : 127.0.0.1:9000)

Le socket sur lequel le démon fcgiwrap écoute. Voir Services web.

Il n’y a pas de git-http-service-type, actuellement ; à la place vous pouvez créer un nginx-location-configuration à partir d’un git-http-configuration puis ajouter cela au serveur web.

Procédure Scheme :git-http-nginx-location-configuration [config=(git-http-configuration)]

Calcule un nginx-location-configuration qui correspond à la configuration http Git donnée. Voici un exemple de définition de service nginx qui sert le répertoire /srv/git par défaut en HTTPS :

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

Ce exemple suppose que vous utilisez Let’s Encrypt pour récupérer votre certificat TLS. Voir Services de certificats. Le service certbot par défaut redirigera tout le trafic HTTP de git.my-host.org en HTTPS. Vous devrez aussi ajouter un mandataire fcgiwrap à vos services systèmes. Voir Services web.

Service Cgit

Cgit est une interface web pour des dépôts Git écrite en C.

L’exemple suivant configurera le service avec les valeurs par défaut. Par défaut, on peut accéder à Cgit sur le port (http://localhost:80).

(service cgit-service-type)

Le type file-object désigne soit un objet simili-fichier (voir file-like objects), soit une chaîne.

Les champs de cgit-configuration disponibles sont :

paramètre de cgit-configuration :package package

Le paquet cgit.

paramètre de cgit-configuration :nginx-server-configuration-list nginx

Configuration Nginx.

paramètre de cgit-configuration :file-object about-filter

Spécifie une commande qui doit être invoquée pour formater le contenu des pages « à propos » (au plus haut niveau et pour chaque dépôt).

La valeur par défaut est ‘""’.

paramètre de cgit-configuration :string agefile

Spécifie un chemin, relativement à chaque dépôt, qui peut être utilisé pour spécifier la date et l’heure du plus récent commit du dépôt.

La valeur par défaut est ‘""’.

paramètre de cgit-configuration :file-object auth-filter

Spécifie une commande qui sera invoquée pour authentifier l’accès au dépôt.

La valeur par défaut est ‘""’.

paramètre de cgit-configuration :string branch-sort

Drapeau qui, lorsqu’il vaut ‘age’, active le trie par date dans la liste des branches, et le trie par nom lorsqu’il vaut ‘name’.

La valeur par défaut est ‘"name"’.

paramètre de cgit-configuration :string cache-root

Chemin utilisé pour stocker les entrées de cache de cgit.

La valeur par défaut est ‘"/var/cache/cgit"’.

paramètre de cgit-configuration :integer cache-static-ttl

Nombre qui spécifie le temps de vie, en minute, des versions en cache des pages du dépôt accédées par leur SHA-1.

La valeur par défaut est ‘-1’.

paramètre de cgit-configuration :integer cache-dynamic-ttl

Nombre qui spécifie le temps de vie, en minutes, des version en cache des pages du dépôt accédées sans leur SHA1.

La valeur par défaut est ‘5’.

paramètre de cgit-configuration :integer cache-repo-ttl

Nombre qui spécifie le temps de vie, en minute, des version en cache de la page de résumé du dépôt.

La valeur par défaut est ‘5’.

paramètre de cgit-configuration :integer cache-root-ttl

Nombre qui spécifie le temps de vie, en minutes, de la version en cache de la page d’index du dépôt.

La valeur par défaut est ‘5’.

paramètre de cgit-configuration :integer cache-scanrc-ttl

Nombre qui spécifie le temps de vie, en minutes, de la version en cache du résultat du scan d’un chemin dans le dépôt Git.

La valeur par défaut est ‘15’.

paramètre de cgit-configuration :integer cache-about-ttl

Nombre qui spécifie le temps de vie, en minutes, de la version en cache de la page « à propos » du dépôt.

La valeur par défaut est ‘15’.

paramètre de cgit-configuration :integer cache-snapshot-ttl

Nombre qui spécifie le temps de vie, en minutes, de la version en cache des archives.

La valeur par défaut est ‘5’.

paramètre de cgit-configuration :integer cache-size

Le nombre maximum d’entrées dans le cache de cgit. Lorsque la valeur est ‘0’, le cache est désactivé.

La valeur par défaut est ‘0’.

paramètre de cgit-configuration :boolean case-sensitive-sort?

Indique si le tri des éléments est sensible à la casse.

La valeur par défaut est ‘#t’.

paramètre de cgit-configuration :list clone-prefix

Liste des préfixes communs qui, lorsqu’ils sont combinés à l’URL du dépôt, génèrent des URL de clone valides pour le dépôt.

La valeur par défaut est ‘()’.

paramètre de cgit-configuration :list clone-url

Liste des modèles clone-url.

La valeur par défaut est ‘()’.

paramètre de cgit-configuration :file-object commit-filter

Commande qui sera invoquée pour formater les messages de commit.

La valeur par défaut est ‘""’.

paramètre de cgit-configuration :string commit-sort

Drapeau qui, s’il vaut ‘date’, active le tri par date strict dans le messages de commit, et le tri topologique strict lorsqu’il vaut ‘topo’.

La valeur par défaut est ‘"git log"’.

paramètre de cgit-configuration :file-object css

URL qui spécifie le document css à inclure dans les pages cgit.

La valeur par défaut est ‘"/share/cgit/cgit.css"’.

paramètre de cgit-configuration :file-object email-filter

Spécifie une commande qui sera invoquée pour formater les noms et l’adresse de courriel des commiteurs, des auteurs et des taggueurs, représentés à plusieurs endroits dans l’interface cgit.

La valeur par défaut est ‘""’.

paramètre de cgit-configuration :boolean embedded?

Drapeau qui, s’il vaut ‘#t’, fera générer un fragment HTML à cgit qu’il sera possible d’inclure dans d’autres pages HTML.

La valeur par défaut est ‘#f’.

paramètre de cgit-configuration :boolean enable-commit-graph?

Drapeau qui, lorsqu’il vaut ‘#t’, fera afficher un historique en ASCII-art à gauche des messages de commit dans la page de log du dépôt.

La valeur par défaut est ‘#f’.

paramètre de cgit-configuration :boolean enable-filter-overrides?

Drapeau qui, lorsqu’il vaut ‘#t’, permet à tous les paramètres de filtrage d’être modifiés dans des fichiers cgitrc spécifiques au dépôt.

La valeur par défaut est ‘#f’.

Drapeau qui, s’il vaut ‘#t’, permet aux utilisateurs de suivre un fichier dans la vue « log ».

La valeur par défaut est ‘#f’.

paramètre de cgit-configuration :boolean enable-http-clone?

Si la valeur est ‘#t’, cgit agira comme un point d’accès HTTP idiot pour les clones Git.

La valeur par défaut est ‘#t’.

Drapeau qui, s’il vaut ‘#t’, fera générer des liens « résumé », « commit » et « arborescence » supplémentaires poru chaque dépôt dans l’index des dépôts.

La valeur par défaut est ‘#f’.

paramètre de cgit-configuration :boolean enable-index-owner?

Drapeau qui, s’il vaut ‘#t’, fera afficher le propriétaire de chaque dépôt dans l’index des dépôts.

La valeur par défaut est ‘#t’.

paramètre de cgit-configuration :boolean enable-log-filecount?

Drapeau qui, s’il vaut ‘#t’, fera afficher à cgit le nombre de fichiers modifiés pour chaque commit sur la page de log du dépôt.

La valeur par défaut est ‘#f’.

paramètre de cgit-configuration :boolean enable-log-linecount?

Drapeau qui, s’il vaut ‘#t’, fera afficher à cgit le nombre de lignes ajoutées et enlevées pour chaque commit de la page de log du dépôt.

La valeur par défaut est ‘#f’.

paramètre de cgit-configuration :boolean enable-remote-branches?

Drapeau qui, s’il vaut ‘#t’, fera afficher les branches distantes dans les vues du résumé et des références.

La valeur par défaut est ‘#f’.

Drapeau qui, s’il vaut ‘1’, fera utiliser à cgit le sujet du commit parent comme texte du lien lors de la génération des liens vers les commits parents dans la vue des commits.

La valeur par défaut est ‘#f’.

paramètre de cgit-configuration :boolean enable-html-serving?

Drapeau qui, s’il vaut ‘#t’, fera utiliser à cgit l esujet du commit parent comme texte du lien lors de la génération des liens vers le commit parent dans la vue des commits.

La valeur par défaut est ‘#f’.

paramètre de cgit-configuration :boolean enable-tree-linenumbers?

Drapeau qui, s’il vaut ‘#t’, fera générer à cgit des liens vers le numéro de ligne pour les blobs en texte brut affichés dans la vue de l’arborescence.

La valeur par défaut est ‘#t’.

paramètre de cgit-configuration :boolean enable-git-config?

Drapeau qui, s’il vaut ‘#t’, permettra à cgit d’utiliser la configuration Git pour spécifier des paramètres spécifiques au dépôt.

La valeur par défaut est ‘#f’.

paramètre de cgit-configuration :file-object favicon

URL utilisée comme lien vers un icône pour cgit.

La valeur par défaut est ‘"/favicon.ico"’.

Le contenu du fichier spécifié avec cette option sera inclus directement au bas de toutes les pages (c.-à-d. qu’il remplace le message « généré par … » générique).

La valeur par défaut est ‘""’.

paramètre de cgit-configuration :string head-include

Le contenu du fichier spécifié dans cette option sera inclus directement dans la section HEAD HTML de toutes les pages.

La valeur par défaut est ‘""’.

paramètre de cgit-configuration :string header

Le contenu du fichier spécifié avec cette option sera inclus directement au début de toutes les pages.

La valeur par défaut est ‘""’.

paramètre de cgit-configuration :file-object include

Nom d’un fichier de configuration à inclure avant que le reste du fichier de configuration actuel ne soit analysé.

La valeur par défaut est ‘""’.

paramètre de cgit-configuration :string index-header

Le contenu du fichier spécifié avec cette option sera inclus directement au dessus de l’index des dépôts.

La valeur par défaut est ‘""’.

paramètre de cgit-configuration :string index-info

Le contenu du fichier spécifié avec cette option sera inclus directement en dessous de l’en-tête sur la page d’index du dépôt.

La valeur par défaut est ‘""’.

paramètre de cgit-configuration :boolean local-time?

Drapeau qui, s’il vaut ‘#t’, fera afficher à cgit l’heure et la date de commit et de tag dans le fuseau horaire du serveur.

La valeur par défaut est ‘#f’.

URL qui spécifie la source d’une image utilisé comme logo sur toutes les pages cgit.

La valeur par défaut est ‘"/share/cgit/cgit.png"’.

URL chargée lors du clic sur l’image du logo de cgit.

La valeur par défaut est ‘""’.

paramètre de cgit-configuration :file-object owner-filter

Commande qui sera invoquée pour formater la colonne propriétaire sur la page principale.

La valeur par défaut est ‘""’.

paramètre de cgit-configuration :integer max-atom-items

Nombre d’éléments à afficher dans la vue des flux atom.

La valeur par défaut est ‘10’.

paramètre de cgit-configuration :integer max-commit-count

Nombre d’éléments à lister par page dans la vue « log ».

La valeur par défaut est ‘50’.

paramètre de cgit-configuration :integer max-message-length

Nombre caractères de messages de commit à afficher dans la vue « log ».

La valeur par défaut est ‘80’.

paramètre de cgit-configuration :integer max-repo-count

Spécifie le nombre d’éléments à lister par page sur la page de l’index des dépôts.

La valeur par défaut est ‘50’.

paramètre de cgit-configuration :integer max-repodesc-length

Spécifie le nombre maximum de caractères de description de dépôts à afficher sur la page d’index des dépôts.

La valeur par défaut est ‘80’.

paramètre de cgit-configuration :integer max-blob-size

Spécifie la taille maximale d’un blob pour lequel afficher du HTML en kilo-octets.

La valeur par défaut est ‘0’.

paramètre de cgit-configuration :string max-stats

Période de statistiques maximale. Les valeurs valides sont ‘week’, ‘month’, ‘quarter’ et ‘year’.

La valeur par défaut est ‘""’.

paramètre de cgit-configuration :mimetype-alist mimetype

Type mime pour l’extension de fichier spécifiée.

La valeur par défaut est ‘((gif "image/gif") (html "text/html") (jpg "image/jpeg") (jpeg "image/jpeg") (pdf "application/pdf") (png "image/png") (svg "image/svg+xml"))’.

paramètre de cgit-configuration :file-object mimetype-file

Spécifie le fichier à utiliser pour la recherche automatique de type mime.

La valeur par défaut est ‘""’.

Texte qui sera utilisé comme chaîne de formatage pour un lien hypertexte lorsqu’un sous-module est affiché dans la liste du répertoire.

La valeur par défaut est ‘""’.

paramètre de cgit-configuration :boolean nocache?

Si la valeur est ‘#t’, le cache est désactivé.

La valeur par défaut est ‘#f’.

paramètre de cgit-configuration :boolean noplainemail?

Si la valeur est ‘#t’, l’affichage des adresse de courriel des auteurs sera désactivé.

La valeur par défaut est ‘#f’.

paramètre de cgit-configuration :boolean noheader?

Drapeau qui, s’il vaut ‘#t’, fera omettre à cgit l’en-tête standard sur toutes les pages.

La valeur par défaut est ‘#f’.

paramètre de cgit-configuration :project-list project-list

UNe liste de sous-répertoires dans repository-directory, relativement à lui, qui devrait être chargé comme des dépôts Git. Une liste vide signifie que tous les sous-répertoires seront chargés.

La valeur par défaut est ‘()’.

paramètre de cgit-configuration :file-object readme

Texte utilisé comme valeur par défaut pour cgit-repo-readme.

La valeur par défaut est ‘""’.

paramètre de cgit-configuration :boolean remove-suffix?

Si la valeur est #t et que repository-directory est activé, si un dépôt avec un suffixe de .git est trouvé, ce suffixe sera supprimé de l’URL et du nom.

La valeur par défaut est ‘#f’.

paramètre de cgit-configuration :integer renamelimit

Nombre maximum de fichiers à considérer lors de la détection des renommages.

La valeur par défaut est ‘-1’.

paramètre de cgit-configuration :string repository-sort

La manière dont les dépôt de chaque section sont rangés.

La valeur par défaut est ‘""’.

paramètre de cgit-configuration :robots-list robots

Texte utilisé comme contenu du méta-attribut robots.

La valeur par défaut est ‘("noindex" "nofollow")’.

paramètre de cgit-configuration :string root-desc

Texte affiché en dessous de l’en-tête de la page d’index des dépôts.

La valeur par défaut est ‘"a fast webinterface for the git dscm"’.

paramètre de cgit-configuration :string root-readme

Le contenu du fichier spécifié avec cette option sera inclus directement en dessous du lien « à propos » sur la page d’index du dépôt.

La valeur par défaut est ‘""’.

paramètre de cgit-configuration :string root-title

Texte affiché sur la page d’index des dépôts.

La valeur par défaut est ‘""’.

paramètre de cgit-configuration :boolean scan-hidden-path

Si la valeur est ‘#t’ et que repository-directory est activé, repository-directory recherchera de manière récursive dans les répertoires dont le nom commence par un point. Sinon, repository-directory restera hors de ces répertoires, considérés comme « cachés ». Remarquez que cela ne s’applique pas au répertoire « .git » dans le dépôts non bruts.

La valeur par défaut est ‘#f’.

paramètre de cgit-configuration :list snapshots

Texte qui spécifie l’ensemble des formats d’archives par défaut pour lesquelles cgit générera un lien.

La valeur par défaut est ‘()’.

paramètre de cgit-configuration :repository-directory repository-directory

Nom du répertoire à scanner pour trouver les dépôts (représente scan-path).

La valeur par défaut est ‘"/srv/git"’.

paramètre de cgit-configuration :string section

Le nom de la section de dépôts actuelle — tous les dépôts définis après ce point hériterons du nom de section actuel.

La valeur par défaut est ‘""’.

paramètre de cgit-configuration :string section-sort

Drapeau qui, s’il vaut ‘1’, triera les sections dans la liste des dépôts par nom.

La valeur par défaut est ‘""’.

paramètre de cgit-configuration :integer section-from-path

Un nombre qui, s’il est défini avant repository-directory, spécifier combien d’éléments de chemin de chaque chemin de dépôt utiliser comme nom de section par défaut.

La valeur par défaut est ‘0’.

paramètre de cgit-configuration :boolean side-by-side-diffs?

Si la valeur est ‘#t’, afficher des diffs côte à côte au lieu des unidiffs par défaut.

La valeur par défaut est ‘#f’.

paramètre de cgit-configuration :file-object source-filter

Spécifie une commande qui sera invoquée pour formater les blobs en texte brut dans la vue de l’arborescence.

La valeur par défaut est ‘""’.

paramètre de cgit-configuration :integer summary-branches

Spécifie le nombre de branches à afficher dans la vue « résumé » du dépôt.

La valeur par défaut est ‘10’.

paramètre de cgit-configuration :integer summary-log

Spécifie le nombre d’élément du journal à afficher dans la vue « résumé » du dépôt.

La valeur par défaut est ‘10’.

paramètre de cgit-configuration :integer summary-tags

Spécifie le nombre de tags à afficher dans la vue « résumé » du dépôt.

La valeur par défaut est ‘10’.

paramètre de cgit-configuration :string strict-export

Nom de fichier qui, s’il est spécifié, doit être présent dans le dépôt pour que cgit accorde l’accès à ce dépôt.

La valeur par défaut est ‘""’.

paramètre de cgit-configuration :string virtual-root

URL qui, si elle est spécifiée, sera utilisée comme racine pour tous les liens cgit.

La valeur par défaut est ‘"/"’.

paramètre de cgit-configuration :repository-cgit-configuration-list repositories

Une liste d’enregistrements cgit-repo à utiliser avec config.

La valeur par défaut est ‘()’.

Les champs de repository-cgit-configuration disponibles sont :

paramètre de repository-cgit-configuration :repo-list snapshots

Un masque de formats d’archives pour ce dépôt pour lesquelles cgit générera un lien, restreint par le paramètre snapshots global.

La valeur par défaut est ‘()’.

paramètre de repository-cgit-configuration :repo-file-object source-filter

Modifie le source-filter par défaut.

La valeur par défaut est ‘""’.

paramètre de repository-cgit-configuration :repo-string url

URL relative utilisée pour accéder au dépôt.

La valeur par défaut est ‘""’.

paramètre de repository-cgit-configuration :repo-file-object about-filter

Modifie le paramètre about-filter par défaut.

La valeur par défaut est ‘""’.

paramètre de repository-cgit-configuration :repo-string branch-sort

Drapeau qui, s’il vaut ‘age’, active le tri par date dans la liste des branches, et lorsqu’il vaut ‘name’, le tri par nom.

La valeur par défaut est ‘""’.

paramètre de repository-cgit-configuration :repo-list clone-url

Un liste d’URL qui peuvent être utilisées pour cloner ce dépôt.

La valeur par défaut est ‘()’.

paramètre de repository-cgit-configuration :repo-file-object commit-filter

Modifie le paramètre commit-filter par défaut.

La valeur par défaut est ‘""’.

paramètre de repository-cgit-configuration :repo-string commit-sort

Drapeau qui, s’il vaut ‘date’, active le tri par date strict dans le messages de commit, et le tri topologique strict lorsqu’il vaut ‘topo’.

La valeur par défaut est ‘""’.

paramètre de repository-cgit-configuration :repo-string defbranch

Le nom de la branche par défaut de ce dépôt. Si cette branche n’existe pas dans le dépôt, le premier nom de branche (trié) sera utilisé par défaut. Par défaut la branche pointée par HEAD, ou « master » s’il n’y a pas de HEAD convenable.

La valeur par défaut est ‘""’.

paramètre de repository-cgit-configuration :repo-string desc

La valeur à afficher comme description du dépôt.

La valeur par défaut est ‘""’.

paramètre de repository-cgit-configuration :repo-string homepage

La valeur à afficher comme page d’accueil du dépôt.

La valeur par défaut est ‘""’.

paramètre de repository-cgit-configuration :repo-file-object email-filter

Modifie le paramètre email-filter par défaut.

La valeur par défaut est ‘""’.

paramètre de repository-cgit-configuration :peut-être-booléen-repo enable-commit-graph?

Un drapeau qui peut être utilisé pour désactiver le paramètre enable-commit-graph? global.

La valeur par défaut est ‘disabled’.

paramètre de repository-cgit-configuration :peut-être-booléen-repo enable-log-filecount?

Un drapeau qui peut être utilisé pour désactiver le paramètre enable-log-filecount? global.

La valeur par défaut est ‘disabled’.

paramètre de repository-cgit-configuration :peut-être-booléen-repo enable-log-linecount?

Un drapeau qui peut être utilisé pour désactiver le paramètre enable-log-linecount? global.

La valeur par défaut est ‘disabled’.

paramètre de repository-cgit-configuration :peut-être-booléen-repo enable-remote-branches?

Drapeau qui, s’il vaut ‘#t’, fera afficher les branches distantes dans les vues du résumé et des références.

La valeur par défaut est ‘disabled’.

Un drapeau qui peut être utilisé pour modifier le paramètre enable-subject-links? global.

La valeur par défaut est ‘disabled’.

paramètre de repository-cgit-configuration :peut-être-booléen-repo enable-html-serving?

Un drapeau qui peut être utilisé pour modifier le paramètre enable-html-serving? global.

La valeur par défaut est ‘disabled’.

paramètre de repository-cgit-configuration :repo-boolean hide?

Drapeau qui, s’il vaut #t, cache le dépôt de l’index des dépôts.

La valeur par défaut est ‘#f’.

paramètre de repository-cgit-configuration :repo-boolean ignore?

Drapeau qui, s’il vaut #t, ignore le dépôt.

La valeur par défaut est ‘#f’.

paramètre de repository-cgit-configuration :repo-file-object logo

URL qui spécifie la source d’une image qui sera utilisée comme logo sur les pages de ce dépôt.

La valeur par défaut est ‘""’.

URL chargée lors du clic sur l’image du logo de cgit.

La valeur par défaut est ‘""’.

paramètre de repository-cgit-configuration :repo-file-object owner-filter

Modifie le paramètre owner-filter par défaut.

La valeur par défaut est ‘""’.

Texte qui sera utilisé comme chaîne de formatage pour un lien hypertexte lorsqu’un sous-module est affiché dans une liste de fichiers. Les arguments pour la chaîne de formatage sont le chemin et le SHA1 du commit du sous-module.

La valeur par défaut est ‘""’.

Texte qui sera utilisé comme chaîne de formatage lorsqu’un sous-module avec un chemin spécifié sera affiché dans une liste de fichiers.

La valeur par défaut est ‘()’.

paramètre de repository-cgit-configuration :repo-string max-stats

Modifie la période de statistique maximale par défaut.

La valeur par défaut est ‘""’.

paramètre de repository-cgit-configuration :repo-string name

La valeur à afficher comme nom de dépôt.

La valeur par défaut est ‘""’.

paramètre de repository-cgit-configuration :repo-string owner

Une valeur utilisée pour identifier le propriétaire du dépôt.

La valeur par défaut est ‘""’.

paramètre de repository-cgit-configuration :repo-string path

Un chemin absolu vers le répertoire du dépôt.

La valeur par défaut est ‘""’.

paramètre de repository-cgit-configuration :repo-string readme

Un chemin (relatif au dépôt) qui spécifie un fichier à inclure directement comme page « À propos » pour ce dépôt.

La valeur par défaut est ‘""’.

paramètre de repository-cgit-configuration :repo-string section

Le nom de la section de dépôts actuelle — tous les dépôts définis après ce point hériterons du nom de section actuel.

La valeur par défaut est ‘""’.

paramètre de repository-cgit-configuration :repo-list extra-options

Options supplémentaires ajoutées à la fin du fichier cgitrc.

La valeur par défaut est ‘()’.

paramètre de cgit-configuration :list extra-options

Options supplémentaires ajoutées à la fin du fichier cgitrc.

La valeur par défaut est ‘()’.

Cependant, vous pourriez vouloir simplement récupérer un cgitrc et l’utiliser. Dans ce cas, vous pouvez passer un opaque-cgit-configuration comme enregistrement à cgit-service-type. Comme son nom l’indique, une configuration opaque n’a pas de capacité de réflexion facile.

Les champs de opaque-cgit-configuration disponibles sont :

paramètre de opaque-cgit-configuration :package cgit

Le paquet cgit.

paramètre de opaque-cgit-configuration :string string

Le contenu de cgitrc, en tant que chaîne de caractère.

Par exemple, si votre cgitrc est juste la chaîne vide, vous pouvez instancier un service cgit ainsi :

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

Service Gitolite

Gitolite est un outil pour héberger des dépôts Git sur un serveur central.

Gitolite peut gérer plusieurs dépôts et utilisateurs et supporte une configuration flexible des permissions pour les utilisateurs sur ces dépôts.

L’exemple suivant configure Gitolite en utilisant l’utilisateur git par défaut et la clef SSH fournie.

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

Gitolite est configuré via un dépôt d’administration spécial que vous pouvez cloner. Par exemple, si vous hébergez Gitolite sur example.com, vous pouvez lancer la commande suivante pour cloner le dépôt d’administration.

git clone git@example.com:gitolite-admin

Lorsque le service Gitolite est activé, la clef admin-pubkey fournie sera insérée dans le répertoire keydir du dépôt gitolite-admin. Si cela change le dépôt, un commit sera effectué avec le message « gitolite setup by GNU Guix ».

Type de données :gitolite-configuration

Type de données représentant la configuration de gitolite-service-type.

package (par défaut : gitolite)

Le paquet Gitolite à utiliser. Il y a des dépendances facultatives à Gitolite qui ne sont pas incluses dans le paquet par défaut comme Redis et git-annex. Ces fonctionnalités peuvent devenir disponibles en utilisant la procédure make-gitolite dans le module (gnu packages version-control) pour produire une variante de Gitolite avec les dépendances supplémentaires souhaitées.

Le code suivant renvoie un paquet dans lequel les programmes Redis et git-annex peuvent être invoqués par les scripts de Gitolite :

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

Utilisateur pour utiliser Gitolite. Cela sera l’utilisateur à utiliser pour accéder à Gitolite par SSH.

group (par défaut : git)

Groupe à utiliser pour Gitolite.

home-directory (par défaut : "/var/lib/gitolite")

Répertoire dans lequel stocker la configuration et les dépôts de Gitolite.

rc-file (par défaut : (gitolite-rc-file))

Un objet « simili-fichier » (voir file-like objects) représentant la configuration de Gitolite.

admin-pubkey (par défaut : #f)

Un objet « simili-fichier » (voir file-like objects) utilisé pour paramétrer Gitolite. Il sera inséré dans le répertoire keydir dans le dépôt gitolite-admin.

Pour spécifier la clef SSH comme chaîne de caractère, utilisez la fonction plain-file.

(plain-file "yourname.pub" "ssh-rsa AAAA... guix@example.com")
Type de données :gitolite-rc-file

Type de données représentant le fichier RC de Gitolite.

umask (par défaut : #o0077)

Cela contrôle les permissions que Gitolite propose sur les dépôts et leur contenu.

Une valeur comme #o0027 donnera accès en lecture au groupe utilisé par Gitolite (par défaut : git). Cela est nécessaire lorsque vous utilise Gitolite avec un logiciel comme cgit ou gitweb.

local-code (par défaut : "$rc{GL_ADMIN_BASE}/local")

Vous permet d’ajouter vos propres programmes non essentiels, voire d’écraser les programmes fournis par défaut avec vos propres programmes.

Fournissez le chemin COMPLET à cette variable. Par défaut, le répertoire appelé « local » dans votre clone gitolite est utilisé, ce qui permet de le versionner et de vous permettre de le modifier sans avoir à vous connecter au serveur.

unsafe-pattern (par défaut : #f)

Une expression régulière en Perl qui correspond aux configurations non sures dans le fichier de configuration. Voir la documentation de Gitolite pour plus d’informations.

Lorsque la valeur n’est pas #f, elle devrait être une chaîne contenant une expression régulière en Perl, comme ‘"[`~#\$\&()|;<>]"’, qui est la valeur par défaut utilisée par gitolite. Elle rejette les caractères spéciaux dans la configuration qui pourraient être interprétés par un shell, ce qui est utile lorsque vous partagez la charge d’administration avec d’autres personnes qui n’ont pas accès à un shell sur le serveur.

git-config-keys (par défaut : "")

Gitolite vous permet de modifier les configurations git avec le mot-clef ‘config’. Ce paramètre vous permet de contrôler les clefs de configuration acceptables.

roles (par défaut : '(("READERS" . 1) ("WRITERS" . )))

Indique les noms des rôles qui peuvent être utilisés par les utilisateurs avec la commande perms.

enable (par défaut : '("help" "desc" "info" "perms" "writable" "ssh-authkeys" "git-config" "daemon" "gitweb"))

Ce paramètre contrôle les commandes et les fonctionnalités à activer dans Gitolite.

Service Gitile

Gitile est une forge Git qui permet de visualiser le contenu de dépôts Git dans votre navigateur web.

Gitile fonctionne mieux en tandem avec Gitolite, et servira les dépôts publics de Gitolite par défaut. Le service devrait écouter uniquement sur un port local, et vous devriez configurer un serveur web pour servir les ressources statiques. Le service gitile fournit une manière pratique d’étendre le service Nginx pour cela (voir NGINX).

L’exemple suivant configurera Gitile pour servir les dépôts d’un emplacement personnalisé, avec quelques messages par défaut pour la page d’accueil et les pieds de page.

(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")))))))))

En plus de l’enregistrement de configuration, vous devriez configurer vos dépôts git pour contenir certaines informations facultatives. Tout d’abord, vos dépôts publics doivent contenir le fichier magique git-daemon-export-ok qui permet à Git d’exporter le dépôt. Gitile utiliser la présence de ce fichier pour détecter les dépôts publics qu’il doit rendre accessibles. Pour cela, avec Gitolite par exemple, modifiez votre conf/gitolite.conf pour inclure ceci dans les dépôts que vous voulez rendre publics :

repo toto
    R = daemon

En plus, Gitile peut lire la configuration du dépôt pour afficher des informations supplémentaires sur les page du dépôt. Gitile utilise l’espace de nom gitweb pour sa configuration. Par exemple, vous pouvez utiliser cela dans votre conf/gitolite.conf :

repo toto
    R = daemon
    desc = Une description longue, éventuellement avec du <i>HTML</i>, qui se trouvera sur la page d'accueil
    config gitweb.name = Le projet Toto
    config gitweb.synopsis = Une description courte, affichée sur la page principale du projet

N’oubliez pas de commiter et de pousser les changement quand vous êtes satisfait. Vous pourrez avoir besoin de changer la configuration de gitolite pour permettre aux options précédentes d’être acceptées. Une manière de faire est d’ajouter la définition de service suivante :

(service gitolite-service-type
          (gitolite-configuration
            (admin-pubkey (local-file "key.pub"))
            (rc-file
              (gitolite-rc-file
                (umask #o0027)
                ;; Permet d'indique n'importe quelle clé de configuration
                (git-config-keys ".*")
                ;; Admet n'importe quel texte comme valeur de configuration valide
                (unsafe-patt "^$")))))
Type de données :gitile-configuration

Type de données représentant la configuration de gitile-service-type.

package (par défaut : gitile)

Le paquet Gitile à utiliser.

host (par défaut : "localhost")

L’hôte sur lequel gitile écoute.

port (par défaut : 8080)

Le port sur lequel gitile écoute.

database (par défaut : "/var/lib/gitile/gitile-db.sql")

L’emplacement de la base de données.

repositories (par défaut : "/var/lib/gitolite/repositories")

L’emplacement des dépôts. Notez que seuls les dépôts publics seront affichés par Gitile. Pour rendre un dépôt public, ajouter un fichier vide git-daemon-export-ok à la racine de ce dépôt.

base-git-url

L’URL git de base qui sera utilisée pour afficher les commandes de clonage.

index-title (par défaut : "Index")

La titre de la page pour la page d’index qui répertorie tous les dépôts disponibles.

intro (par défaut : '())

Le contenu de l’introduction, sous la forme d’une liste d’expressions sxml. C’est ce qui est affiché au-dessus de la liste des dépôts, sur la page d’index.

footer (par défaut : '())

Le contenu du pied-de-page, sous la forme d’une liste d’expressions sxml. Il apparaît sur chaque page servie par Gitile.

nginx-server-block

Un bloc de serveur nginx qui sera étendu et utilisé comme serveur mandataire inverse par Gitile pour servir ses pages, et comme serveur web normal pour servir ses ressources statiques.

Vous pouvez utiliser ce bloc pour ajouter d’autres URLs personnalisées à votre domaine, comme une URL /git/ pour les clonages anonymes, ou pour servir tout autre fichier que vous voudriez servir.


Notes de bas de page

(35)

En créant le fichier magique git-daemon-export-ok dans le répertoire du dépôt.


Suivant: Services de jeu, Précédent: Services de virtualisation, Monter: Services   [Table des matières][Index]