Précédent: , Monter: Développement   [Table des matières][Index]


7.5 Invoquer guix git authenticate

La commande guix git authenticate authentifie un checkout Git en suivant la même règle que pour les canaux (voir channel authentication). C’est-à-dire qu’à partir d’un commit donné, il s’assure que tous les commit suivants sont signés par une clé OpenPGP dont l’empreinte digitale apparaît dans le fichier .guix-authorizations de son ou ses commit(s) parent(s).

Vous allez trouver cette commande utile si vous maintenez un canal. Mais en fait, ce mécanisme d’authentification est utile dans un contexte plus large, Vous pourriez donc vouloir l’utiliser pour des dépôts Git qui n’ont rien à voir avec Guix.

La syntaxe générale est :

guix git authenticate commit signer [options…]

By default, this command authenticates the Git checkout in the current directory; it outputs nothing and exits with exit code zero on success and non-zero on failure. commit above denotes the first commit where authentication takes place, and signer is the OpenPGP fingerprint of public key used to sign commit. Together, they form a channel introduction (voir channel introduction). On your first successful run, the introduction is recorded in the .git/config file of your checkout, allowing you to omit them from subsequent invocations:

guix git authenticate [options…]

Should you have branches that require different introductions, you can specify them directly in .git/config. For example, if the branch called personal-fork has a different introduction than other branches, you can extend .git/config along these lines:

[guix "authentication-personal-fork"]
	introduction-commit = cabba936fd807b096b48283debdcddccfea3900d
	introduction-signer = C0FF EECA BBA9 E6A8 0D1D  E643 A2A0 6DF2 A33A 54FA
	keyring = keyring

The first run also attempts to install pre-push and post-merge hooks, such that guix git authenticate is invoked as soon as you run git push, git pull, and related commands; it does not overwrite preexisting hooks though.

The command-line options described below allow you to fine-tune the process.

--repository=répertoire
-r répertoire

Ouvre le dépôt Git dans directory au lieu du répertoire courant.

--keyring=référence
-k féférence

Chargez le porte-clés OpenPGP à partir de référence, la référence d’une branche telle que origin/keyring ou my-keyring. La branche doit contenir des clés publiques OpenPGP dans des fichiers .key, soit sous forme binaire, soit "blindée ASCII". Par défaut, le porte-clés est chargé à partir de la branche nommée keyring.

--end=commit

Authenticate revisions up to commit.

--stats

Affiche les statistiques sur les signatures de commits à l’issue de la procédure.

--cache-key=key

Les commits préalablement authentifiés sont mis en cache dans un fichier sous ~/.cache/guix/authentication. Cette option force le cache à être stocké dans le fichier key de ce répertoire.

--historical-authorizations=fichier

Par défaut, tout commit dont le(s) commit(s) parent(s) ne contient(nt) pas le fichier .guix-authorizations est considéré comme non authentique. En revanche, cette option considère les autorisations dans file pour tout commit dont le fichier .guix-authorizations est manquant. Le format de file est le même que celui de .guix-authorizations (au format voir .guix-autorizations).


Précédent: La chaîne d’outils GCC, Monter: Développement   [Table des matières][Index]