AnglaisFrançaisEspagnol

Ad


Icône de favori OnWorks

irkerhook - En ligne dans le Cloud

Exécutez irkerhook dans le fournisseur d'hébergement gratuit OnWorks sur Ubuntu Online, Fedora Online, l'émulateur en ligne Windows ou l'émulateur en ligne MAC OS

Il s'agit de la commande irkerhook qui peut être exécutée dans le fournisseur d'hébergement gratuit OnWorks en utilisant l'un de nos multiples postes de travail en ligne gratuits tels que Ubuntu Online, Fedora Online, l'émulateur en ligne Windows ou l'émulateur en ligne MAC OS

PROGRAMME:

Nom


irkerhook - script de hook de référentiel émettant des notifications irker

SYNOPSIS


irkerhook.py [-n] [-V] [[--variable=valeur...]] [[id de validation...]]

DESCRIPTION


irkerhook.py est un script Python destiné à être appelé à partir du hook post-commit d'un
référentiel de contrôle de version. Son travail consiste à collecter des informations sur le commit qui s'est déclenché
le crochet (et éventuellement les préférences définies par le propriétaire du référentiel) et expédier ces informations
à une instance de irkerd pour le transfert vers divers canaux d'annonce.

L'invocation et le comportement appropriés de irkerhook.py varient en fonction du VCS
(système de contrôle de version) l'appelle. Il y a quatre endroits différents à partir desquels il peut
extraire des informations :

1. Appels aux utilitaires VCS.

2. Dans les VCS comme git qui prennent en charge les variables de configuration définissables par l'utilisateur, les variables avec
le préfixe "irker.".

3. Dans d'autres VCS, un fichier de configuration, "irker.conf", dans les internes du référentiel
répertoire.

4. Arguments de ligne de commande de la forme --variable=valeur.

Les variables suivantes sont générales pour tous les VCS pris en charge :

Projet
Le nom du projet. Doit être un identifiant relativement court ; apparaîtra généralement
au tout début d'une notification.

repo
Le nom du répertoire de niveau supérieur du référentiel. Si non spécifié, la valeur par défaut est
copie en minuscules du nom du projet.

Voies
Une URL de canal IRC, ou une liste séparée par des virgules, identifiant les canaux auxquels
des notifications doivent être envoyées. Si non spécifié, la valeur par défaut est le freenode #commits
canal.

serveur
Hôte sur lequel le démon irker de relais de notification doit résider.
La valeur par défaut est "localhost".

email
Si défini, utilisez le courrier électronique pour la communication plutôt que TCP ou UDP. La valeur est utilisée comme
adresse mail cible.

tcp
Si « vrai », utilisez TCP pour la communication ; si "faux", utilisez UDP. La valeur par défaut est « faux ».

préfixe d'url
Préfixe d'URL Changeset pour votre dépôt. Lorsque l'ID de validation est ajouté à cela, il devrait
pointez sur un CGI qui affichera le commit via cgit, gitweb ou quelque chose de similaire.
Les valeurs par défaut fonctionneront probablement si vous avez une configuration gitweb/cgit typique.

Si la valeur de cette variable est "Aucun", génération du champ URL en commit
les notifications seront supprimées. Les autres valeurs magiques sont "cgit", "gitweb" et
"viewcvs", qui s'étend aux modèles d'URL qui fonctionnent généralement avec ces systèmes.

Les cookies magiques "%(host)s" et %(repo)s" peuvent apparaître dans cette URL. Le premier est
étendu au FQDN de l'hôte sur lequel irkerhook.py est exécuté ; ce dernier est
étendu à la valeur de la variable "repo".

minuscule
Modèle d'URL pointant vers un service de compression des URL afin qu'elles prennent moins de temps
espace dans la ligne de notification. Si la valeur de cette variable est "Aucun", non
la compression sera tentée.

Couleur
Si "mIRC", mettez en surbrillance les champs de notification avec les codes de couleur mIRC. Si "ANSI", mettez en surbrillance
champs de notification avec séquences d'échappement de couleur ANSI. La valeur par défaut est "aucun" (pas de couleurs).
Les codes ANSI sont pris en charge dans Chatzilla, irssi, ircle et BitchX ; Seuls les codes mIRC sont
reconnu dans mIRC, XChat, KVirc, Konversation ou weechat.

Remarque : si vous activez cette option et que les notifications cessent d'apparaître sur votre chaîne, vous devez
pour désactiver le filtre de couleur d'IRC sur ce canal. Pour ce faire, vous aurez besoin d'op
privilèges; lancez la commande "/mode -c" avec remplacé par votre
nom du canal. Vous devrez peut-être d'abord lancer la commande "/msg chanserv set
MLOCK +nt-slk".

maxcanaux
Interprété comme un entier. Sinon zéro, limite le nombre de canaux que le crochet va
interpréter à partir de la variable "channels".

Cette variable ne peut pas être définie via les variables de configuration VCS ou irker.conf ; ça peut
être défini uniquement avec un argument de ligne de commande. Ainsi, sur un site de forge dans lequel référentiel
les propriétaires ne sont pas autorisés à modifier leurs scripts post-commit, un administrateur de site peut
réglez-le pour empêcher le spam par des propriétaires de projets malveillants. Le mettre à une valeur
moins de 2, cependant, serait probablement imprudent.

cialike
S'il n'est pas vide et non "Aucun" (valeur par défaut), cela émule l'ancien comportement de la CIA de
abandon de longues listes de fichiers au profit d'un résumé du formulaire (N fichiers dans M
répertoires). La valeur doit être numérique donnant une valeur seuil pour la longueur du
liste de fichiers en caractères.

jet
Sous git, la manière normale d'invoquer ce hook (depuis le hook de mise à jour) lui passe un
refname suivi d'une liste de commits. Parce que jet liste des reves normalement des listes de la plupart
récent au plus ancien, vous voudrez utiliser --reverse pour que les notifications soient omises dans
ordre chronologique. Dans un script de mise à jour normal, l'appel devrait ressembler à ceci

nom de référence = $1
vieux=$2
nouveau=$3
irkerhook.py --refname=${refname} $(git rev-list --reverse ${old}..${new})

sauf que vous aurez besoin d'un chemin absolu pour irkerhook.py.

À des fins de test et de compatibilité descendante, si vous appelez irkerhook.py sans
arguments (comme dans un hook post-commit), il se comportera comme s'il avait été appelé comme
ce:

irkerhook.py --refname=refs/heads/master HEAD

Cependant, cela ne donnera pas le bon résultat lorsque vous pousserez vers une branche autre que celle par défaut d'un
pension nue.

Une façon typique d'installer ce crochet est en fait dans le crochet post-réception, car il obtient
tous les détails nécessaires et n'annulera pas la poussée en cas d'échec. Utilisez le suivant
script:

#!/ Bin / sh

echo "envoi d'une notification IRC"
pendant la lecture de l'ancien nouveau nom de référence ; faire
irkerhook --refname=${refname} $(git rev-list --reverse ${old}..${new})
fait

Pour plus de commodité, cela est implémenté par le script d'aide irkerhook-git.

Les préférences peuvent être définies dans le fichier de configuration du référentiel dans une section [irker]. Voici un exemple
à quoi cela peut ressembler :

[agace]
projet = gpsd
couleur = ANSI
canaux = irc://chat.freenode.net/gpsd,irc://chat.freenode.net/commits

Vous ne devez pas définir la variable "référentiel" (un équivalent sera calculé). Pas de tentative
est fait pour interpréter un fichier irker.conf.

La valeur par défaut de la variable "project" est le nom de base du répertoire du référentiel.
La valeur par défaut de la variable "urlprefix" est "cgit".

Il existe une variable spécifique à git, "revformat", contrôlant le format du commit
identifiant dans une notification. Il peut avoir les valeurs suivantes :

brut
ID hexadécimal complet du commit

court
12 premiers caractères de l'ID hexadécimal

décrire
décrire par rapport à la dernière balise, revenir à court

La valeur par défaut est « décrire ».

Subversion
Sous Subversion, irkerhook.py accepte une option --repository avec la valeur (la valeur absolue
chemin du dépôt Subversion) et un argument de validation (le niveau de révision numérique
du commit). Les valeurs par défaut sont respectivement le répertoire de travail actuel et HEAD.

Notez cependant que vous ne peut pas par défaut l'argument du référentiel à l'intérieur d'une Subversion
crochet post-commit; c'est à cause d'une limitation de Subversion, qui est que l'obtention du
Le répertoire courant n'est pas fiable à l'intérieur de ces crochets. Au lieu de cela, les valeurs doivent être les deux
arguments que Subversion passe à ce hook en tant qu'arguments. Ainsi, une invocation typique dans
le script post-commit ressemblera à ceci :

REPO=1 $
REV=2 $
irkerhook.py --repository=$REPO $REV

D'autres paramètres --variable=value peuvent également être donnés sur la ligne de commande et remplaceront
tous les paramètres d'un fichier irker.conf.

La valeur par défaut de la variable de projet est le nom de base du référentiel. La valeur par défaut
de la variable "urlprefix" est "viewcvs".

Si un fichier irker.conf existe dans le répertoire racine du référentiel (pas dans le répertoire d'extraction
mais où des éléments internes tels que le fichier "format" vivent), le crochet interprétera la variable
paramètres à partir de celui-ci. Voici un exemple de ce à quoi pourrait ressembler un tel fichier :

# paramètres variables irkerhook pour le projet irker
projet = agaçant
canaux = irc://chat.freenode/irker,irc://chat.freenode/commits
tcp = faux

Ne définissez pas les variables « repository » ou « commit » dans ce fichier ; qui aurait malheureux
résultats.

Il n'y a pas de variables spécifiques à Subversion.

Mercuriel
Sous Mercurial, irkerhook.py peut être invoqué de deux manières : soit en tant que crochet Python
(de préférence) ou sous forme de script.

Pour l'appeler comme un crochet Python, ajoutez le collowing au crochet "commit" ou "incoming"
déclaration dans votre référentiel Mercurial :

[crochets]
entrant.irker = python:/chemin/vers/irkerhook.py:hg_hook

Lorsqu'il est appelé en tant que script, le hook accepte une option --repository avec une valeur (la valeur absolue
chemin du référentiel Mercurial) et peut prendre un argument de validation (le hachage Mercurial
ID du commit ou une référence à celui-ci). La valeur par défaut de l'argument du référentiel est le
répertoire actuel. L'argument de validation par défaut est '-1', désignant le conseil actuel
s'engager.

Comme pour git, dans les deux cas, toutes les variables peuvent être définies dans le fichier repo hgrc dans un [irker]
section. Variable de ligne de commande = les arguments de valeur sont acceptés mais non requis pour le script
invocation. Aucune tentative n'est faite pour interpréter un fichier irker.conf.

La valeur par défaut de la variable "project" est le nom de base du répertoire du référentiel.
La valeur par défaut de la variable "urlprefix" est la valeur de la config "web.baseurl"
valeur, si elle existe.

Filtration
Il est possible de filtrer les commits avant de les envoyer à irkerd.

Vous devez spécifier le filtrecmd option, qui sera la commande que irkerhook.py exécutera.
Cette commande doit accepter un argument, qui est une représentation JSON de commit et
extracteur de métadonnées (y compris la variable de canaux). La commande doit émettre au standard
générer une représentation JSON des métadonnées (éventuellement modifiées).

Voici un exemple de filtre :

#!/ usr / bin / env python
# Ceci est un exemple trivial de filtre de métadonnées.
# Tout ce qu'il fait est de changer le nom de l'auteur du commit.
#
importer sys, json
métadonnées = json.loads(sys.argv[1])

metadata['author'] = "Le grand et puissant Oz"

impression json.dumps(métadonnées)
# finir

L'erreur standard est disponible pour le hook pour les messages de progression et d'erreur.

OPTIONS


irkerhook.py prend les options suivantes :

-n
Supprimer la transmission à un démon. Au lieu de cela, videz la requête JSON générée dans
sortie standard. Utile pour le débogage.

-V
Écrivez la version du programme sur stdout et terminez.

Utilisez irkerhook en ligne en utilisant les services onworks.net


Serveurs et postes de travail gratuits

Télécharger des applications Windows et Linux

Commandes Linux

Ad