EnglischFranzösischSpanisch

Ad


OnWorks-Favicon

irkerhook – Online in der Cloud

Führen Sie irkerhook im kostenlosen Hosting-Anbieter OnWorks über Ubuntu Online, Fedora Online, den Windows-Online-Emulator oder den MAC OS-Online-Emulator aus

Dies ist der Befehl irkerhook, der beim kostenlosen Hosting-Anbieter OnWorks mit einer unserer zahlreichen kostenlosen Online-Workstations wie Ubuntu Online, Fedora Online, dem Windows-Online-Emulator oder dem MAC OS-Online-Emulator ausgeführt werden kann

PROGRAMM:

NAME/FUNKTION


irkerhook – Repository-Hook-Skript, das Irker-Benachrichtigungen ausgibt

ZUSAMMENFASSUNG


irkerhook.py [-n] [-V] [[--variable=Wert...]] [[Commit-ID...]]

BESCHREIBUNG


irkerhook.py ist ein Python-Skript, das vom Post-Commit-Hook von a aufgerufen werden soll
Versionskontroll-Repository. Seine Aufgabe besteht darin, Informationen über den ausgelösten Commit zu sammeln
den Hook (und möglicherweise die vom Repository-Eigentümer festgelegten Einstellungen) und versenden diese Informationen
an eine Instanz von irkerd zur Weiterleitung an verschiedene Ankündigungskanäle.

Der ordnungsgemäße Aufruf und das Verhalten von irkerhook.py variieren je nach VCS
(Versionskontrollsystem) ruft es auf. Es gibt vier verschiedene Orte, von denen aus es möglich ist
Informationen extrahieren:

1. Anrufe an VCS-Dienstprogramme.

2. In VCSes wie Git, die vom Benutzer einstellbare Konfigurationsvariablen unterstützen, Variablen mit
das Präfix „irker.“

3. In anderen VCSes eine Konfigurationsdatei, „irker.conf“, in den Interna des Repositorys
Verzeichnis.

4. Befehlszeilenargumente der Form --variable=value.

Die folgenden Variablen gelten allgemein für alle unterstützten VCSes:

Projekt
Der Name des Projekts. Sollte eine relativ kurze Kennung sein; wird normalerweise angezeigt
ganz am Anfang einer Benachrichtigung.

Repo
Der Name des Verzeichnisses der obersten Ebene des Repositorys. Wenn nicht angegeben, wird standardmäßig a verwendet
Kleingeschriebene Kopie des Projektnamens.

Kanäle
Eine IRC-Kanal-URL oder eine durch Kommas getrennte Liste derselben, die die Kanäle identifiziert, auf die zugegriffen werden soll
Benachrichtigungen sind zu versenden. Wenn nicht angegeben, ist der Standardwert der Freenode #commits
Kanal.

Server
Der Host, auf dem sich der Benachrichtigungsweiterleitungs-Irker-Daemon befinden soll.
Der Standardwert ist „localhost“.

E-Mail
Wenn festgelegt, verwenden Sie für die Kommunikation E-Mail anstelle von TCP oder UDP. Der Wert wird als verwendet
Ziel-Mailadresse.

TCP
Wenn „true“, verwenden Sie TCP für die Kommunikation; wenn „false“, verwenden Sie UDP. Der Standardwert ist „false“.

URL-Präfix
Changeset-URL-Präfix für Ihr Repo. Wenn die Commit-ID daran angehängt wird, sollte dies der Fall sein
Zeigen Sie auf ein CGI, das das Commit über cgit, gitweb oder etwas Ähnliches anzeigt.
Die Standardeinstellungen funktionieren wahrscheinlich, wenn Sie ein typisches Gitweb/Cgit-Setup haben.

Wenn der Wert dieser Variablen „None“ ist, erfolgt die Generierung des URL-Felds im Commit
Benachrichtigungen werden unterdrückt. Andere magische Werte sind „cgit“, „gitweb“ und
„viewcvs“, die zu URL-Vorlagen erweitert werden, die normalerweise mit diesen Systemen funktionieren.

In dieser URL können die magischen Cookies „%(host)s“ und %(repo)s“ vorkommen. Ersteres ist der Fall
erweitert auf den FQDN des Hosts, auf dem irkerhook.py ausgeführt wird; Letzteres ist
auf den Wert der Variable „repo“ erweitert.

Kleinbildner
URL-Vorlage, die auf einen Dienst zum Komprimieren von URLs verweist, damit diese weniger beanspruchen
Leerzeichen in der Benachrichtigungszeile. Wenn der Wert dieser Variablen „None“ ist, nein
Komprimierung wird versucht.

Farbe
Wenn „mIRC“, Benachrichtigungsfelder mit mIRC-Farbcodes hervorheben. Wenn „ANSI“, markieren Sie es
Benachrichtigungsfelder mit ANSI-Farb-Escape-Sequenzen. Der Standardwert ist „none“ (keine Farben).
ANSI-Codes werden in Chatzilla, irssi, ircle und BitchX unterstützt; Es gibt nur mIRC-Codes
erkannt in mIRC, XChat, KVirc, Konversation oder Weechat.

Hinweis: Wenn Sie diese Option aktivieren und auf Ihrem Kanal keine Benachrichtigungen mehr angezeigt werden, benötigen Sie Folgendes
um den IRC-Farbfilter für diesen Kanal auszuschalten. Dazu benötigen Sie op
Privilegien; Geben Sie den Befehl „/mode -c" mit durch Ihr ersetzt
Kanal Name. Möglicherweise müssen Sie zuerst den Befehl „/msg chanserv set“ eingeben
MLOCK +nt-slk".

maxchannels
Als Ganzzahl interpretiert. Wenn nicht Null, wird die Anzahl der Kanäle begrenzt, die der Hook verarbeiten kann
aus der Variable „channels“ interpretieren.

Diese Variable kann nicht über VCS-Konfigurationsvariablen oder irker.conf festgelegt werden; es kann
kann nur mit einem Befehlszeilenargument festgelegt werden. Also auf einer Forge-Site in welchem ​​Repository
Eigentümer dürfen ihre Post-Commit-Skripte nicht ändern, ein Site-Administrator jedoch
Legen Sie es fest, um Schrotflinten-Spam durch böswillige Projektbesitzer zu verhindern. Setzen Sie es auf einen Wert
weniger als 2 wäre jedoch wahrscheinlich unklug.

cialike
Wenn es nicht leer und nicht „None“ (Standardeinstellung) ist, emuliert dies das alte CIA-Verhalten von
Verzicht auf lange Dateilisten zugunsten einer Zusammenfassung des Formulars (N Dateien in M
Verzeichnisse). Der Wert muss numerisch sein und einen Schwellenwert für die Länge angeben
Dateiliste in Zeichen.

git
Unter Git übergibt die normale Methode zum Aufrufen dieses Hooks (aus dem Update-Hook heraus) a
refname gefolgt von einer Liste von Commits. Weil git Drehzahlliste Normalerweise Listen von den meisten
vom jüngsten zum ältesten, sollten Sie --reverse verwenden, um Benachrichtigungen wegzulassen
chronologische Reihenfolge. In einem normalen Update-Skript sollte der Aufruf so aussehen

Referenzname=$1
alt=2 $
neu=3 $
irkerhook.py --refname=${refname} $(git rev-list --reverse ${old}..${new})

außer dass Sie einen absoluten Pfad für irkerhook.py benötigen.

Zu Testzwecken und zur Abwärtskompatibilität: Wenn Sie irkerhook.py mit nein aufrufen
Argumente (wie in einem Post-Commit-Hook) verhält es sich so, als wäre es „like“ aufgerufen worden
Dies:

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

Dies führt jedoch nicht zum richtigen Ergebnis, wenn Sie auf einen nicht standardmäßigen Zweig von a pushen
nacktes Repo.

Eine typische Möglichkeit, diesen Hook zu installieren, ist tatsächlich der Post-Receive-Hook, weil er funktioniert
alle notwendigen Details und bricht den Push bei einem Fehler nicht ab. Verwenden Sie Folgendes
Skript:

#!/ Bin / sh

echo „IRC-Benachrichtigung wird gesendet“
while read old new refname; Tun
irkerhook --refname=${refname} $(git rev-list --reverse ${old}..${new})
erledigt

Der Einfachheit halber wird dies durch das Hilfsskript irkerhook-git implementiert.

Einstellungen können in der Repo-Konfigurationsdatei im Abschnitt [irker] festgelegt werden. Hier ist ein Beispiel
wie das aussehen kann:

[irker]
Projekt = GPSD
Farbe = ANSI
Kanäle = irc://chat.freenode.net/gpsd,irc://chat.freenode.net/commits

Sie sollten die Variable „repository“ nicht festlegen (es wird ein Äquivalent berechnet). Kein Versuch
dient dazu, eine irker.conf-Datei zu interpretieren.

Der Standardwert der Variable „project“ ist der Basisname des Repository-Verzeichnisses.
Der Standardwert der Variablen „urlprefix“ ist „cgit“.

Es gibt eine Git-spezifische Variable, „revformat“, die das Format des Commits steuert
Identifikator in einer Benachrichtigung. Es kann folgende Werte haben:

roh
Vollständige Hex-ID des Commits

kurz
Die ersten 12 Zeichen der Hex-ID

beschreiben
Beschreiben Sie relativ zum letzten Tag und greifen Sie auf „Short“ zurück

Der Standardwert ist „beschreiben“.

Subversion
Unter Subversion akzeptiert irkerhook.py eine Option --repository mit dem Wert (dem absoluten Wert).
Pfadname des Subversion-Repositorys) und ein Commit-Argument (die numerische Revisionsstufe).
des Commits). Die Standardeinstellungen sind das aktuelle Arbeitsverzeichnis bzw. HEAD.

Beachten Sie jedoch, dass Sie kann keine Standardmäßig wird das Repository-Argument in einer Subversion verwendet
Post-Commit-Hook; Dies liegt an einer Einschränkung von Subversion, die darin besteht, das zu erhalten
Das aktuelle Verzeichnis ist innerhalb dieser Hooks nicht zuverlässig. Stattdessen müssen die Werte die beiden sein
Argumente, die Subversion als Argumente an diesen Hook übergibt. So ein typischer Aufruf in
Das Post-Commit-Skript sieht folgendermaßen aus:

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

Andere --variable=value-Einstellungen können ebenfalls in der Befehlszeile angegeben werden und haben Vorrang
alle Einstellungen in einer irker.conf-Datei.

Der Standardwert für die Projektvariable ist der Basisname des Repositorys. Der Standardwert
Die Variable „urlprefix“ ist „viewcvs“.

Wenn eine irker.conf-Datei im Repository-Stammverzeichnis vorhanden ist (nicht im Checkout-Verzeichnis).
aber wo Interna wie die „Format“-Datei leben) wird der Hook die Variable interpretieren
Einstellungen daraus. Hier ist ein Beispiel, wie eine solche Datei aussehen könnte:

# Irkerhook-Variableneinstellungen für das Irker-Projekt
Projekt = irker
Kanäle = irc://chat.freenode/irker,irc://chat.freenode/commits
tcp = false

Legen Sie in dieser Datei nicht die Variablen „repository“ oder „commit“ fest; das wäre unglücklich gewesen
Ergebnisse angezeigt

Es gibt keine Subversion-spezifischen Variablen.

Quecksilber-
Unter Mercurial kann irkerhook.py auf zwei Arten aufgerufen werden: entweder als Python-Hook
(bevorzugt) oder als Skript.

Um es als Python-Hook aufzurufen, fügen Sie das Collowing zum „Commit“- oder „Incoming“-Hook hinzu
Deklaration in Ihrem Mercurial-Repository:

[Haken]
incoming.irker = python:/path/to/irkerhook.py:hg_hook

Beim Aufruf als Skript akzeptiert der Hook eine --repository-Option mit einem Wert (dem absoluten Wert).
Pfadname des Mercurial-Repositorys) und kann ein Commit-Argument (den Mercurial-Hash) annehmen
ID des Commits oder eine Referenz darauf). Der Standardwert für das Repository-Argument ist
Aktuelles Verzeichnis. Das Standard-Commit-Argument ist „-1“ und bezeichnet den aktuellen Tipp
verpflichten.

Was Git betrifft, können in beiden Fällen alle Variablen in der Repo-HGRC-Datei in einem [irker] festgelegt werden.
Abschnitt. Befehlszeilenvariable=Wertargumente werden akzeptiert, sind aber für das Skript nicht erforderlich
Aufruf. Es wird kein Versuch unternommen, eine irker.conf-Datei zu interpretieren.

Der Standardwert der Variable „project“ ist der Basisname des Repository-Verzeichnisses.
Der Standardwert der Variablen „urlprefix“ ist der Wert der Konfiguration „web.baseurl“.
Wert, falls vorhanden.

Filterung
Es ist möglich, Commits zu filtern, bevor sie an irkerd gesendet werden.

Sie müssen die angeben filtercmd Option, bei der es sich um den Befehl handelt, den irkerhook.py ausführt.
Dieser Befehl sollte ein Argument akzeptieren, nämlich eine JSON-Darstellung von commit und
Extraktor-Metadaten (einschließlich der Kanalvariablen). Der Befehl sollte standardmäßig ausgegeben werden
Ausgabe einer JSON-Darstellung von (möglicherweise geänderten) Metadaten.

Unten finden Sie einen Beispielfilter:

#!/usr/bin/env python
# Dies ist ein triviales Beispiel für einen Metadatenfilter.
# Es ändert lediglich den Namen des Autors des Commits.
#
sys, json importieren
metadata = json.loads(sys.argv[1])

metadata['author'] = "Der große und mächtige Oz"

drucken json.dumps(Metadaten)
# Ende

Für Fortschritts- und Fehlermeldungen steht dem Hook ein Standardfehler zur Verfügung.

OPTIONAL


irkerhook.py akzeptiert die folgenden Optionen:

-n
Unterdrücken Sie die Übertragung an einen Daemon. Geben Sie stattdessen die generierte JSON-Anfrage an aus
Standardausgabe. Nützlich zum Debuggen.

-V
Schreiben Sie die Programmversion auf stdout und beenden Sie sie.

Nutzen Sie irkerhook online über die Dienste von onworks.net


Kostenlose Server & Workstations

Laden Sie Windows- und Linux-Apps herunter

Linux-Befehle

Ad