EngelsFransSpaans

Ad


OnWorks-favicon

irkerhook - Online in de cloud

Voer irkerhook uit in de gratis hostingprovider van OnWorks via Ubuntu Online, Fedora Online, Windows online emulator of MAC OS online emulator

Dit is de opdracht irkerhook die kan worden uitgevoerd in de gratis hostingprovider van OnWorks met behulp van een van onze meerdere gratis online werkstations zoals Ubuntu Online, Fedora Online, Windows online emulator of MAC OS online emulator

PROGRAMMA:

NAAM


irkerhook - repository hook-script dat irker-meldingen afgeeft

KORTE INHOUD


irkerhook.py [-n] [-V] [[--variabele=waarde...]] [[commit-id...]]

PRODUCTBESCHRIJVING


irkerhook.py is een Python-script bedoeld om te worden aangeroepen vanaf de post-commit hook van a
repository voor versiebeheer. Het is zijn taak om informatie te verzamelen over de commit die is afgevuurd
de hook (en mogelijk voorkeuren die zijn ingesteld door de eigenaar van de repository) en verzend die informatie
naar een instantie van irkerd voor het doorsturen naar verschillende aankondigingskanalen.

De juiste aanroep en het juiste gedrag van irkerhook.py varieert afhankelijk van welke VCS
(versiecontrolesysteem) noemt het. Er zijn vier verschillende plaatsen van waaruit het kan
informatie extraheren:

1. Oproepen naar VCS-hulpprogramma's.

2. In VCS'en zoals git die door de gebruiker instelbare configuratievariabelen ondersteunen, variabelen met
het voorvoegsel "irker.".

3. In andere VCS-en, een configuratiebestand, "irker.conf", in het interne gedeelte van de repository
directory.

4. Opdrachtregelargumenten van de vorm --variable=value.

De volgende variabelen zijn algemeen voor alle ondersteunde VCS'en:

project
De naam van het project. Moet een relatief korte identifier zijn; zal meestal verschijnen
helemaal aan het begin van een melding.

repo
De naam van de directory op het hoogste niveau van de repository. Indien niet gespecificeerd, standaard ingesteld op a
kopie van de projectnaam in kleine letters.

kanalen
Een IRC-kanaal-URL, of een door komma's gescheiden lijst van dezelfde, identificerende kanalen waarnaar:
meldingen moeten worden verzonden. Indien niet gespecificeerd, is de standaard freenode #commits
kanaal.

server
De host waarop de melding-relaying irker-daemon zich naar verwachting bevindt.
Standaard ingesteld op "localhost".

email
Gebruik, indien ingesteld, e-mail voor communicatie in plaats van TCP of UDP. De waarde wordt gebruikt als de
doel e-mailadres.

tcp
Indien "true", gebruik dan TCP voor communicatie; indien "false", gebruik UDP. Staat standaard op "false".

urlvoorvoegsel
Wijzigingsset URL-voorvoegsel voor uw repo. Wanneer de commit ID hieraan wordt toegevoegd, zou het moeten:
wijs naar een CGI die de commit zal weergeven via cgit, gitweb of iets dergelijks.
De standaardinstellingen zullen waarschijnlijk werken als je een typische gitweb/cgit-setup hebt.

Als de waarde van deze variabele "Geen" is, wordt het URL-veld gegenereerd in commit
meldingen worden onderdrukt. Andere magische waarden zijn "cgit", "gitweb", en
"viewcvs", die zich uitbreiden naar URL-sjablonen die meestal met die systemen werken.

De magische cookies "%(host)s" en %(repo)s" kunnen in deze URL voorkomen. De eerste is
uitgebreid naar de FQDN van de host waarop irkerhook.py draait; de laatste is
uitgebreid tot de waarde van de variabele "repo".

verkleinwoord
URL-sjabloon die verwijst naar een service voor het comprimeren van URL's, zodat ze minder in beslag nemen
spatie in de meldingsregel. Als de waarde van deze variabele "Geen" is, nee
compressie zal worden geprobeerd.

kleur
Als "mIRC", markeer meldingsvelden met mIRC-kleurcodes. Indien "ANSI", markeer
meldingsvelden met ontsnappingsreeksen voor ANSI-kleuren. Standaard ingesteld op "geen" (geen kleuren).
ANSI-codes worden ondersteund in Chatzilla, irssi, ircle en BitchX; Alleen mIRC-codes zijn
herkend in mIRC, XChat, KVirc, Konversation of weechat.

Opmerking: als je dit inschakelt en er verschijnen geen meldingen meer op je kanaal, moet je
om het kleurenfilter van IRC op dat kanaal uit te schakelen. Om dit te doen heb je op . nodig
privileges; geef het commando "/mode -c" met vervangen door jouw
kanaal naam. Mogelijk moet u eerst het commando "/msg chanserv set" geven
MLOCK +nt-slk".

maxkanalen
Geïnterpreteerd als een geheel getal. Indien niet nul, beperkt dan het aantal kanalen dat de hook zal hebben
interpreteren vanuit de variabele "kanalen".

Deze variabele kan niet worden ingesteld via VCS-configuratievariabelen of irker.conf; het kan
alleen worden ingesteld met een opdrachtregelargument. Dus, op een smederij-site waarin repository
eigenaren mogen hun post-commit scripts niet wijzigen, een sitebeheerder kan:
stel het in om shotgun-spam door kwaadwillende projecteigenaren te voorkomen. Instellen op een waarde
minder dan 2 zou echter waarschijnlijk onverstandig zijn.

ciaal
Indien niet leeg en niet "Geen" (de standaardinstelling), emuleert dit het oude CIA-gedrag van
lange lijsten met bestanden laten vallen ten gunste van een samenvatting van het formulier (N-bestanden in M
mappen). De waarde moet numeriek zijn en een drempelwaarde geven voor de lengte van de
bestandslijst in tekens.

git
Onder git geeft de normale manier om deze hook aan te roepen (vanuit de update hook) het een
refname gevolgd door een lijst met commits. Omdat git rev-lijst normaal gesproken lijsten van de meeste
van recent naar oud, gebruik --reverse om meldingen weg te laten in
chronologische volgorde. In een normaal updatescript zou de aanroep er als volgt uit moeten zien:

refnaam=$1
oud=$2
nieuw=$3
irkerhook.py --refname=${refname} $(git rev-list --reverse ${oud}..${nieuw})

behalve dat je een absoluut pad nodig hebt voor irkerhook.py.

Voor testdoeleinden en achterwaartse compatibiliteit, als u irkerhook.py aanroept zonder
argumenten (zoals in een post-commit hook) zal het zich gedragen alsof het like . heeft genoemd
deze:

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

Dit geeft echter niet het juiste resultaat als je pusht naar een niet-standaard branch van a
kale repo.

Een typische manier om deze haak te installeren, is eigenlijk in de post-ontvangsthaak, omdat deze wordt
alle noodzakelijke details en zal de push-on-mislukking niet afbreken. Gebruik het volgende
script:

#!/ Bin / sh

echo "IRC-melding verzenden"
terwijl lees oude nieuwe refname; doen
irkerhook --refnaam=${refnaam} $(git rev-list --reverse ${oud}..${nieuw})
gedaan

Voor het gemak wordt dit geïmplementeerd door het irkerhook-git helperscript.

Voorkeuren kunnen worden ingesteld in het repo-configuratiebestand in een [irker]-sectie. Hier is een voorbeeld
hoe dat eruit kan zien:

[Irker]
project = gpsd
kleur = ANSI
kanalen = irc://chat.freenode.net/gpsd,irc://chat.freenode.net/commits

U moet de variabele "repository" niet instellen (er wordt een equivalent berekend). Geen poging
is gemaakt om een ​​irker.conf-bestand te interpreteren.

De standaardwaarde van de variabele "project" is de basisnaam van de repositorydirectory.
De standaardwaarde van de variabele "urlprefix" is "cgit".

Er is één git-specifieke variabele, "revformat", die het formaat van de commit controleert
identificatiecode in een melding. Het kan de volgende waarden hebben:

rauw
volledige hexadecimale ID van commit

kort
eerste 12 tekens van hexadecimale ID

beschrijven
beschrijven ten opzichte van de laatste tag, terugvallend op short

De standaard is 'beschrijven'.

Omverwerping
Onder Subversion accepteert irkerhook.py een --repository optie met waarde (de absolute
padnaam van de Subversion-repository) en een commit-argument (het numerieke revisieniveau
van de toezegging). De standaardwaarden zijn respectievelijk de huidige werkdirectory en HEAD.

Houd er echter rekening mee dat u kan niet standaard het repository-argument binnen een Subversion
post-commit haak; dit komt door een beperking van Subversion, namelijk dat het verkrijgen van de
huidige directory is niet betrouwbaar binnen deze hooks. In plaats daarvan moeten de waarden de twee zijn
argumenten die Subversion als argumenten aan die hook doorgeeft. Dus een typische aanroep in
het post-commit script ziet er als volgt uit:

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

Andere --variable=value-instellingen kunnen ook op de opdrachtregel worden gegeven en zullen worden overschreven
alle instellingen in een irker.conf-bestand.

De standaard voor de projectvariabele is de basisnaam van de repository. De standaardwaarde:
van de variabele "urlprefix" is "viewcvs".

Als een irker.conf-bestand bestaat in de hoofdmap van de repository (niet de uitcheckmap)
maar waar internals zoals het "format"-bestand live zijn), zal de hook de variabele interpreteren
instellingen ervan. Hier is een voorbeeld van hoe zo'n bestand eruit zou kunnen zien:

# irkerhook variabele instellingen voor het irker-project
project = erger
kanalen = irc://chat.freenode/irker,irc://chat.freenode/commits
tcp = onwaar

Stel de variabelen "repository" of "commit" niet in dit bestand in; dat zou ongelukkig zijn geweest
resultaten.

Er zijn geen Subversion-specifieke variabelen.

kwikmiddel
Onder Mercurial kan irkerhook.py op twee manieren worden aangeroepen: ofwel als Python-hook
(bij voorkeur) of als script.

Om het een Python-hook te noemen, voeg je de collowing toe aan de "commit" of "incoming" hook
aangifte in uw Mercurial-repository:

[haken]
inkomende.irker = python:/pad/naar/irkerhook.py:hg_hook

Wanneer aangeroepen als een script, accepteert de hook een --repository optie met waarde (de absolute
padnaam van de Mercurial-repository) en kan een commit-argument hebben (de Mercurial-hash
ID van de commit of een verwijzing ernaar). De standaardwaarde voor het repository-argument is de
huidige map. Het standaard commit-argument is '-1', waarmee de huidige tip wordt aangeduid
plegen.

Wat betreft git, in beide gevallen kunnen alle variabelen worden ingesteld in het repo hgrc-bestand in een [irker]
sectie. Opdrachtregelvariabele=waardeargumenten worden geaccepteerd maar niet vereist voor script
aanroeping. Er wordt geen poging gedaan om een ​​irker.conf-bestand te interpreteren.

De standaardwaarde van de variabele "project" is de basisnaam van de repositorydirectory.
De standaardwaarde van de variabele "urlprefix" is de waarde van de configuratie "web.baseurl"
waarde, als deze bestaat.

Filtering
Het is mogelijk om commits te filteren voordat je ze naar irkerd stuurt.

U moet de specificeren filtercmd optie, wat de opdracht zal zijn die irkerhook.py zal uitvoeren.
Deze opdracht moet één argument accepteren, wat een JSON-representatie is van commit en
extractor metadata (inclusief de variabele kanalen). Het commando moet naar standaard uitzenden
output een JSON-representatie van (mogelijk gewijzigde) metadata.

Hieronder vindt u een voorbeeldfilter:

#!/usr/bin/env python
# Dit is een triviaal voorbeeld van een metadatafilter.
# Het enige wat het doet is de naam van de auteur van de commit veranderen.
#
importsysteem, json
metadata = json.loads(sys.argv[1])

metadata['author'] = "The Great and Powerful Oz"

print json.dumps(metagegevens)
# einde

Standaardfout is beschikbaar voor de hook voor voortgangs- en foutmeldingen.

OPTIES


irkerhook.py heeft de volgende opties:

-n
Onderdruk verzending naar een daemon. Dump in plaats daarvan het gegenereerde JSON-verzoek naar
standaard uitvoer. Handig om te debuggen.

-V
Schrijf de programmaversie naar stdout en beëindig.

Gebruik irkerhook online met behulp van onworks.net-services


Gratis servers en werkstations

Windows- en Linux-apps downloaden

Linux-commando's

Ad