IngleseFranceseSpagnolo

Ad


Favicon di OnWorks

irkerhook - Online nel cloud

Esegui irkerhook nel provider di hosting gratuito OnWorks su Ubuntu Online, Fedora Online, emulatore online Windows o emulatore online MAC OS

Questo è il comando irkerhook che può essere eseguito nel provider di hosting gratuito OnWorks utilizzando una delle nostre molteplici workstation online gratuite come Ubuntu Online, Fedora Online, emulatore online Windows o emulatore online MAC OS

PROGRAMMA:

NOME


irkerhook - script hook del repository che invia notifiche irker

SINOSSI


irkerhook.py [-n] [-V] [[--variabile=valore...]] [[ID-commit...]]

DESCRIZIONE


irkerhook.py è uno script Python destinato a essere chiamato dall'hook post-commit di a
repository di controllo della versione. Il suo compito è raccogliere informazioni sul commit che è stato attivato
l'hook (e possibilmente le preferenze impostate dal proprietario del repository) e spedisci quell'informazione
a un'istanza di irkerd per l'inoltro a vari canali di annunci.

L'invocazione e il comportamento corretti di irkerhook.py variano a seconda di quale VCS
(sistema di controllo della versione) lo sta chiamando. Ci sono quattro posti diversi da cui può
estrarre informazioni:

1. Chiamate alle utilità VCS.

2. In VCS come git che supportano variabili di configurazione impostabili dall'utente, variabili con
il prefisso "irker.".

3. In altri VCS, un file di configurazione, "irker.conf", negli interni del repository
directory.

4. Argomenti della riga di comando nella forma --variable=value.

Le seguenti variabili sono generali a tutti i VCS supportati:

progetto
Il nome del progetto. Dovrebbe essere un identificatore relativamente breve; apparirà di solito
all'inizio di una notifica.

pronti contro termine
Il nome della directory di primo livello del repository. Se non specificato, il valore predefinito è a
copia minuscola del nome del progetto.

canali
Un URL del canale IRC, o un elenco separato da virgole dello stesso, che identifica i canali a cui
le notifiche devono essere inviate. Se non specificato, il valore predefinito è il freenode #commits
.

server
L'host su cui dovrebbe risiedere il demone irker di inoltro delle notifiche.
Il valore predefinito è "localhost".

email
Se impostato, utilizza la posta elettronica per la comunicazione anziché TCP o UDP. Il valore viene utilizzato come
indirizzo di posta di destinazione.

tcp
Se "true", usa TCP per la comunicazione; se "falso", usa UDP. Il valore predefinito è "falso".

prefissourl
Prefisso URL Changeset per il tuo repository. Quando l'ID di commit viene aggiunto a questo, dovrebbe
puntare a un CGI che visualizzerà il commit tramite cgit, gitweb o qualcosa di simile.
Le impostazioni predefinite probabilmente funzioneranno se hai una tipica configurazione gitweb/cgit.

Se il valore di questa variabile è "Nessuno", generazione del campo URL in commit
le notifiche verranno soppresse. Altri valori magici sono "cgit", "gitweb" e
"viewcvs", che si espandono in modelli di URL che di solito funzionano con quei sistemi.

I magic cookie "%(host)s" e %(repo)s" possono essere presenti in questo URL. Il primo è
esteso al FQDN dell'host su cui è in esecuzione irkerhook.py; quest'ultimo è
ampliato al valore della variabile "repo".

minuscolo
Modello di URL che punta a un servizio per la compressione degli URL in modo che occupino meno
spazio nella riga di notifica. Se il valore di questa variabile è "Nessuno", no
verrà tentata la compressione.

colore
Se "mIRC", evidenzia i campi di notifica con i codici colore mIRC. Se "ANSI", evidenziare
campi di notifica con sequenze di escape ANSI a colori. Il valore predefinito è "nessuno" (nessun colore).
I codici ANSI sono supportati in Chatzilla, irssi, ircle e BitchX; I codici mIRC sono solo
riconosciuto in mIRC, XChat, KVirc, Konversation o weechat.

Nota: se attivi questa opzione e le notifiche smettono di essere visualizzate sul tuo canale, devi
per disattivare il filtro colore di IRC su quel canale. Per fare questo avrai bisogno di op
privilegi; dai il comando "/mode -c" con sostituito dal tuo
nome del canale. Potrebbe essere necessario eseguire prima il comando "/msg chanserv set
MLOCK +nt-slk".

maxcanali
Interpretato come un numero intero. Se non è zero, limita il numero di canali che l'hook farà
interpretare dalla variabile "channels".

Questa variabile non può essere impostata tramite le variabili di configurazione VCS o irker.conf; può
essere impostato solo con un argomento della riga di comando. Quindi, su un sito forge in cui repository
i proprietari non sono autorizzati a modificare i loro script post-commit, un amministratore del sito può
impostalo per prevenire lo spamming da parte di proprietari di progetti malintenzionati. Impostandolo su un valore
meno di 2, tuttavia, sarebbe probabilmente poco saggio.

cialilike
Se non è vuoto e non è "Nessuno" (impostazione predefinita), questo emula il vecchio comportamento della CIA di
eliminando lunghi elenchi di file a favore di un riepilogo del modulo (N file in M
directory). Il valore deve essere numerico dando un valore di soglia per la lunghezza del
elenco di file in caratteri.

git
Sotto git, il modo normale per invocare questo hook (dall'interno dell'hook di aggiornamento) lo passa a
refname seguito da un elenco di commit. Perché git rev-lista normalmente elenchi dalla maggior parte
dal più recente al più vecchio, ti consigliamo di utilizzare --reverse per fare in modo che le notifiche vengano omesse in
ordine cronologico. In un normale script di aggiornamento, l'invocazione dovrebbe essere simile a questa

nomerif=$1
vecchio=$2
nuovo=$3
irkerhook.py --refname=${refname} $(git rev-list --reverse ${vecchio}..${nuovo})

tranne per il fatto che avrai bisogno di un percorso assoluto per irkerhook.py.

A scopo di test e compatibilità con le versioni precedenti, se invochi irkerhook.py con no
argomenti (come in un hook post-commit) si comporterà come se fosse stato chiamato come
Questo:

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

Tuttavia, questo non darà il risultato corretto quando si esegue il push a un ramo non predefinito di a
nudo repo.

Un modo tipico per installare questo hook è in realtà nel hook post-ricezione, perché ottiene
tutti i dettagli necessari e non interromperà la spinta in caso di fallimento. Utilizza il seguente
sceneggiatura:

#!/bin/sh

echo "invio notifica IRC"
mentre leggi vecchio nuovo refname; fare
irkerhook --refname=${refname} $(git rev-list --reverse ${vecchio}..${nuovo})
fatto

Per comodità, questo è implementato dallo script di supporto irkerhook-git.

Le preferenze possono essere impostate nel file di configurazione del repository in una sezione [irker]. Ecco un esempio
di come potrebbe essere:

[irritante]
progetto = gpsd
colore = ANSI
canali = irc://chat.freenode.net/gpsd,irc://chat.freenode.net/commits

Non dovresti impostare la variabile "repository" (verrà calcolato un equivalente). Nessun tentativo
è fatto per interpretare un file irker.conf.

Il valore predefinito della variabile "progetto" è il nome di base della directory del repository.
Il valore predefinito della variabile "urlprefix" è "cgit".

C'è una variabile specifica di git, "revformat", che controlla il formato del commit
identificatore in una notifica. Può avere i seguenti valori:

crudo
ID esadecimale completo di commit

corto
primi 12 caratteri dell'ID esadecimale

descrivere
descrivere relativo all'ultimo tag, tornando a breve

L'impostazione predefinita è "descrivi".

Sovversione
Sotto Subversion, irkerhook.py accetta un'opzione --repository con valore (l'assoluto
percorso del repository Subversion) e un argomento commit (il livello di revisione numerico
dell'impegno). I valori predefiniti sono rispettivamente la directory di lavoro corrente e HEAD.

Nota, tuttavia, che tu non può predefinito l'argomento del repository all'interno di una Subversion
gancio post-commissione; questo è a causa di una limitazione di Subversion, ovvero ottenere il
la directory corrente non è affidabile all'interno di questi hook. I valori invece devono essere i due
argomenti che Subversion passa a quell'hook come argomenti. Così, una tipica invocazione in
lo script post-commit sarà simile a questo:

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

Altre impostazioni --variable=value possono anche essere fornite sulla riga di comando e verranno sovrascritte
qualsiasi impostazione in un file irker.conf.

L'impostazione predefinita per la variabile di progetto è il nome di base del repository. Il valore predefinito
della variabile "urlprefix" è "viewcvs".

Se esiste un file irker.conf nella directory radice del repository (non nella directory di checkout
ma dove gli interni come il file "formato" vivono) l'hook interpreterà la variabile
impostazioni da esso. Ecco un esempio di come potrebbe apparire un file di questo tipo:

# impostazioni della variabile irkerhook per il progetto irker
progetto = irker
canali = irc://chat.freenode/irker,irc://chat.freenode/commits
tcp = falso

Non impostare le variabili "repository" o "commit" in questo file; sarebbe infelice
risultati.

Non ci sono variabili specifiche per Subversion.

mutevole
Sotto Mercurial, irkerhook.py può essere invocato in due modi: o come hook Python
(preferito) o come script.

Per chiamarlo come hook Python, aggiungi il collowing all'hook "commit" o "incoming"
dichiarazione nel tuo repository Mercurial:

[ganci]
incoming.irker = python:/percorso/di/irkerhook.py:hg_hook

Quando viene chiamato come script, l'hook accetta un'opzione --repository con valore (l'assoluto
percorso del repository Mercurial) e può accettare un argomento di commit (l'hash di Mercurial
ID del commit o un riferimento ad esso). L'impostazione predefinita per l'argomento del repository è il
directory corrente. L'argomento commit predefinito è '-1', che designa il suggerimento corrente
commettere.

Come per git, in entrambi i casi tutte le variabili possono essere impostate nel file repo hgrc in un [irker]
sezione. Gli argomenti della riga di comando variabile=valore sono accettati ma non richiesti per lo script
invocazione. Non viene fatto alcun tentativo di interpretare un file irker.conf.

Il valore predefinito della variabile "progetto" è il nome di base della directory del repository.
Il valore predefinito della variabile "urlprefix" è il valore della configurazione "web.baseurl"
valore, se esiste.

Filtraggio
È possibile filtrare i commit prima di inviarli a irkerd.

Devi specificare il filtrocmd opzione, che sarà il comando irkerhook.py verrà eseguito.
Questo comando dovrebbe accettare un argomento, che è una rappresentazione JSON di commit e
metadati dell'estrattore (inclusa la variabile dei canali). Il comando dovrebbe emettere allo standard
produrre una rappresentazione JSON di metadati (possibilmente alterati).

Di seguito è riportato un filtro di esempio:

#!/usr/bin/env python
# Questo è un banale esempio di filtro dei metadati.
# Tutto ciò che fa è cambiare il nome dell'autore del commit.
#
importa sys, json
metadati = json.loads(sys.argv[1])

metadata['author'] = "Il grande e potente Oz"

stampare json.dumps(metadati)
# fine

L'errore standard è disponibile per l'hook per i messaggi di avanzamento e di errore.

VERSIONI


irkerhook.py accetta le seguenti opzioni:

-n
Sopprime la trasmissione a un demone. Invece, scarica la richiesta JSON generata su
uscita standard. Utile per il debug.

-V
Scrivi la versione del programma su stdout e termina.

Usa irkerhook online utilizzando i servizi onworks.net


Server e workstation gratuiti

Scarica app per Windows e Linux

Comandi Linux

Ad