Suivant: Services de jeu, Précédent: Services de virtualisation, Monter: Services [Table des matières][Index]
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-type
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
.
Type de service qui lance git daemon
, un serveur TCP simple pour
exposer des dépôts sur le protocole Git pour des accès anonymes.
La valeur de ce service est un enregistrement
<git-daemon-configuration>
, par défaut il permet l’accès en
lecture-seule aux dépôts exportés39 dans
/srv/git.
Type de données qui représente la configuration de
git-daemon-service-type
.
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
40.
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 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.
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/certs/git.my-host.org/fullchain.pem")
(ssl-certificate-key
"/etc/certs/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.
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 :
cgit-configuration
:package package ¶Le paquet cgit.
cgit-configuration
:nginx-server-configuration-list nginx ¶Configuration Nginx.
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 ‘""’.
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 ‘""’.
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 ‘""’.
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"’.
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"’.
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’.
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’.
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’.
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’.
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’.
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’.
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’.
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’.
cgit-configuration
:boolean case-sensitive-sort? ¶Indique si le tri des éléments est sensible à la casse.
La valeur par défaut est ‘#t’.
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 ‘'()’.
cgit-configuration
:list clone-url ¶Liste des modèles clone-url
.
La valeur par défaut est ‘'()’.
cgit-configuration
:file-object commit-filter ¶Commande qui sera invoquée pour formater les messages de commit.
La valeur par défaut est ‘""’.
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"’.
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"’.
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 ‘""’.
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’.
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’.
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’.
cgit-configuration
:boolean enable-follow-links? ¶Drapeau qui, s’il vaut ‘#t’, permet aux utilisateurs de suivre un fichier dans la vue « log ».
La valeur par défaut est ‘#f’.
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’.
cgit-configuration
:boolean enable-index-links? ¶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’.
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’.
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’.
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’.
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’.
cgit-configuration
:boolean enable-subject-links? ¶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’.
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’.
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’.
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’.
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 ‘""’.
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 ‘""’.
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 ‘""’.
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 ‘""’.
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 ‘""’.
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 ‘""’.
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’.
cgit-configuration
:file-object logo ¶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"’.
cgit-configuration
:string logo-link ¶URL chargée lors du clic sur l’image du logo de cgit.
La valeur par défaut est ‘""’.
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 ‘""’.
cgit-configuration
:integer max-atom-items ¶Nombre d’éléments à afficher dans la vue des flux atom.
La valeur par défaut est ‘10’.
cgit-configuration
:integer max-commit-count ¶Nombre d’éléments à lister par page dans la vue « log ».
La valeur par défaut est ‘50’.
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’.
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’.
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’.
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’.
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 ‘""’.
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"))’.
cgit-configuration
:file-object mimetype-file ¶Spécifie le fichier à utiliser pour la recherche automatique de type mime.
La valeur par défaut est ‘""’.
cgit-configuration
:string module-link ¶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 ‘""’.
cgit-configuration
:boolean nocache? ¶Si la valeur est ‘#t’, le cache est désactivé.
La valeur par défaut est ‘#f’.
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’.
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’.
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 ‘'()’.
cgit-configuration
:file-object readme ¶Text which will be used as default repository-cgit-configuration
readme
.
La valeur par défaut est ‘""’.
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’.
cgit-configuration
:integer renamelimit ¶Nombre maximum de fichiers à considérer lors de la détection des renommages.
La valeur par défaut est ‘-1’.
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 ‘""’.
cgit-configuration
:robots-list robots ¶Texte utilisé comme contenu du méta-attribut robots
.
La valeur par défaut est ‘'("noindex" "nofollow")’.
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"’.
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 ‘""’.
cgit-configuration
:string root-title ¶Texte affiché sur la page d’index des dépôts.
La valeur par défaut est ‘""’.
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’.
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 ‘'()’.
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"’.
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 ‘""’.
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 ‘""’.
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’.
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’.
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 ‘""’.
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’.
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’.
Spécifie le nombre de tags à afficher dans la vue « résumé » du dépôt.
La valeur par défaut est ‘10’.
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 ‘""’.
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 ‘"/"’.
cgit-configuration
:repository-cgit-configuration-list repositories ¶A list of repository-cgit-configuration
records.
La valeur par défaut est ‘'()’.
Les champs de repository-cgit-configuration
disponibles sont :
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 ‘'()’.
repository-cgit-configuration
:repo-file-object source-filter ¶Modifie le source-filter
par défaut.
La valeur par défaut est ‘""’.
repository-cgit-configuration
:repo-string url ¶URL relative utilisée pour accéder au dépôt.
La valeur par défaut est ‘""’.
repository-cgit-configuration
:repo-file-object about-filter ¶Modifie le paramètre about-filter
par défaut.
La valeur par défaut est ‘""’.
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 ‘""’.
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 ‘'()’.
repository-cgit-configuration
:repo-file-object commit-filter ¶Modifie le paramètre commit-filter
par défaut.
La valeur par défaut est ‘""’.
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 ‘""’.
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 ‘""’.
repository-cgit-configuration
:repo-string desc ¶La valeur à afficher comme description du dépôt.
La valeur par défaut est ‘""’.
repository-cgit-configuration
:repo-string homepage ¶La valeur à afficher comme page d’accueil du dépôt.
La valeur par défaut est ‘""’.
repository-cgit-configuration
:repo-file-object email-filter ¶Modifie le paramètre email-filter
par défaut.
La valeur par défaut est ‘""’.
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’.
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’.
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’.
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’.
repository-cgit-configuration
:peut-être-booléen-repo enable-subject-links? ¶Un drapeau qui peut être utilisé pour modifier le paramètre
enable-subject-links?
global.
La valeur par défaut est ‘disabled’.
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’.
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’.
repository-cgit-configuration
:repo-boolean ignore? ¶Drapeau qui, s’il vaut #t
, ignore le dépôt.
La valeur par défaut est ‘#f’.
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 ‘""’.
repository-cgit-configuration
:repo-string logo-link ¶URL chargée lors du clic sur l’image du logo de cgit.
La valeur par défaut est ‘""’.
repository-cgit-configuration
:repo-file-object owner-filter ¶Modifie le paramètre owner-filter
par défaut.
La valeur par défaut est ‘""’.
repository-cgit-configuration
:repo-string module-link ¶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 ‘""’.
repository-cgit-configuration
:module-link-path module-link-path ¶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 ‘'()’.
repository-cgit-configuration
:repo-string max-stats ¶Modifie la période de statistique maximale par défaut.
La valeur par défaut est ‘""’.
repository-cgit-configuration
:repo-string name ¶La valeur à afficher comme nom de dépôt.
La valeur par défaut est ‘""’.
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 ‘""’.
repository-cgit-configuration
:repo-string path ¶Un chemin absolu vers le répertoire du dépôt.
La valeur par défaut est ‘""’.
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 ‘""’.
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 ‘""’.
repository-cgit-configuration
:repo-list extra-options ¶Options supplémentaires ajoutées à la fin du fichier cgitrc.
La valeur par défaut est ‘'()’.
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 :
opaque-cgit-configuration
:package cgit ¶Le paquet cgit.
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 "")))
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 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 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.
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
(nginx-server-configuration
(ssl-certificate
"/etc/certs/myweb.site/fullchain.pem")
(ssl-certificate-key
"/etc/certs/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 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
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.
En créant le fichier magique git-daemon-export-ok dans le répertoire du dépôt.
Lancez man git-daemon
pour plus d’informations.
Suivant: Services de jeu, Précédent: Services de virtualisation, Monter: Services [Table des matières][Index]