InglesPransesEspanyol

Ad


OnWorks favicon

irkerhook - Online sa Cloud

Patakbuhin ang irkerhook sa OnWorks na libreng hosting provider sa Ubuntu Online, Fedora Online, Windows online emulator o MAC OS online emulator

Ito ang command na irkerhook na maaaring patakbuhin sa OnWorks na libreng hosting provider gamit ang isa sa aming maramihang libreng online na workstation gaya ng Ubuntu Online, Fedora Online, Windows online emulator o MAC OS online emulator

PROGRAMA:

NAME


irkerhook - repository hook script na nagbibigay ng irker notification

SINOPSIS


irkerhook.py [-n] [-V] [[--variable=value...]] [[commit-id...]]

DESCRIPTION


Ang irkerhook.py ay isang script ng Python na nilalayong tawagan mula sa post-commit hook ng a
imbakan ng kontrol ng bersyon. Ang trabaho nito ay mangolekta ng impormasyon tungkol sa commit na nagpaputok
ang hook (at posibleng mga kagustuhan na itinakda ng may-ari ng repositoryo) at ipadala ang impormasyong iyon
sa isang instance ng irkerd para sa pagpapasa sa iba't ibang channel ng anunsyo.

Ang wastong invocation at gawi ng irkerhook.py ay nag-iiba depende sa kung aling VCS
(version-control system) ang tumatawag dito. Mayroong apat na magkakaibang mga lugar kung saan maaari itong magmula
kunin ang impormasyon:

1. Mga tawag sa mga utility ng VCS.

2. Sa VCSes tulad ng git na sumusuporta sa user-settable configuration variable, mga variable na may
ang unlaping "irker.".

3. Sa ibang mga VCS, isang configuration file, "irker.conf", sa internals ng repository
direktoryo.

4. Mga argumento ng command-line ng form --variable=value.

Ang mga sumusunod na variable ay pangkalahatan sa lahat ng mga sinusuportahang VCS:

proyekto
Ang pangalan ng proyekto. Dapat ay medyo maikling identifier; karaniwang lilitaw
sa pinakasimula ng isang notification.

repo
Ang pangalan ng top-level na direktoryo ng repository. Kung hindi tinukoy, ang default ay sa a
lowercased na kopya ng pangalan ng proyekto.

channel
Isang URL ng channel ng IRC, o listahan na pinaghihiwalay ng kuwit ng pareho, na tumutukoy sa mga channel kung saan
ang mga abiso ay dapat ipadala. Kung hindi tinukoy, ang default ay ang freenode #commits
channel.

server
Ang host kung saan inaasahang maninirahan ang notification-relaying irker daemon.
Default sa "localhost".

email
Kung nakatakda, gumamit ng email para sa komunikasyon sa halip na TCP o UDP. Ang halaga ay ginagamit bilang ang
target na mail address.

tcp
Kung "totoo", gamitin ang TCP para sa komunikasyon; kung "false", gamitin ang UDP. Default sa "false".

urlprefix
Changeset URL prefix para sa iyong repo. Kapag idinagdag dito ang commit ID, dapat
ituro sa isang CGI na magpapakita ng commit sa pamamagitan ng cgit, gitweb o katulad nito.
Malamang na gagana ang mga default kung mayroon kang pangkaraniwang gitweb/cgit setup.

Kung ang halaga ng variable na ito ay "Wala", pagbuo ng field ng URL sa commit
pipigilan ang mga notification. Ang iba pang mga magic value ay "cgit", "gitweb", at
"viewcvs", na lumalawak sa mga template ng URL na karaniwang gagana sa mga system na iyon.

Ang mahiwagang cookies na "%(host)s" at %(repo)s" ay maaaring mangyari sa URL na ito. Ang una ay
pinalawak sa FQDN ng host kung saan tumatakbo ang irkerhook.py; ang huli ay
pinalawak sa halaga ng variable na "repo".

tinyifier
Ang template ng URL ay tumuturo sa isang serbisyo para sa pag-compress ng mga URL upang mas kaunti ang gagamitin ng mga ito
puwang sa linya ng abiso. Kung ang halaga ng variable na ito ay "Wala", hindi
susubukan ang compression.

kulay
Kung "mIRC", i-highlight ang mga field ng notification na may mga color code ng mIRC. Kung "ANSI", i-highlight
mga field ng notification na may mga pagkakasunud-sunod ng pagtakas ng kulay ng ANSI. Default sa "wala" (walang mga kulay).
Ang mga ANSI code ay sinusuportahan sa Chatzilla, irssi, ircle, at BitchX; Ang mga code ng mIRC lamang ay
kinikilala sa mIRC, XChat, KVirc, Konversation, o weechat.

Tandaan: kung io-on mo ito at hihinto ang paglabas ng mga notification sa iyong channel, kailangan mo
upang i-off ang color filter ng IRC sa channel na iyon. Upang gawin ito kakailanganin mo ang op
mga pribilehiyo; maglabas ng command na "/mode -c" kasama pinalitan ng iyong
pangalan ng channel. Maaaring kailanganin mo munang maglabas ng command na "/msg chanserv set
MLOCK +nt-slk".

maxchannels
Nabibigyang-kahulugan bilang isang integer. Kung hindi zero, nililimitahan ang bilang ng mga channel na gagawin ng hook
bigyang-kahulugan mula sa variable na "mga channel."

Ang variable na ito ay hindi maaaring itakda sa pamamagitan ng VCS configuration variable o irker.conf; kaya nito
itakda lamang gamit ang isang command-line argument. Kaya, sa isang forge site kung saan imbakan
hindi pinapayagan ang mga may-ari na baguhin ang kanilang mga post-commit script, magagawa ng isang administrator ng site
itakda ito upang maiwasan ang pag-spam ng shotgun ng mga malisyosong may-ari ng proyekto. Pagtatakda nito sa isang halaga
mas mababa sa 2, gayunpaman, ay malamang na hindi matalino.

ciallike
Kung hindi walang laman at hindi "Wala" (ang default), tinutulad nito ang lumang gawi ng CIA ng
pag-drop ng mahabang listahan ng mga file pabor sa isang buod ng form (N file sa M
mga direktoryo). Ang value ay dapat numeric na nagbibigay ng threshold value para sa haba ng
listahan ng file sa mga character.

pumunta
Sa ilalim ng git, ang normal na paraan para i-invoke ang hook na ito (mula sa loob ng update hook) ay ipinapasa ito a
refname na sinusundan ng isang listahan ng mga commit. kasi pumunta rev-list karaniwang mga listahan mula sa karamihan
kamakailan hanggang sa pinakaluma, gugustuhin mong gamitin ang --reverse para maalis ang mga notification
magkakasunod-sunod. Sa isang normal na script ng pag-update, ang invocation ay dapat magmukhang ganito

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

maliban na kakailanganin mo ng ganap na landas para sa irkerhook.py.

Para sa mga layunin ng pagsubok at backward compatibility, kung hihingin mo ang irkerhook.py na may no
mga argumento (tulad ng sa isang post-commit hook) ito ay kumikilos na parang tinawag itong like
ito:

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

Gayunpaman, hindi ito magbibigay ng tamang resulta kapag nag-push ka sa isang hindi default na sangay ng a
hubad na repo.

Ang karaniwang paraan para i-install ang hook na ito ay nasa post-receive hook, dahil nakukuha nito
lahat ng mga kinakailangang detalye at hindi abort ang push sa kabiguan. Gamitin ang sumusunod
script:

#!/ Bin / SH

echo "nagpapadala ng abiso sa IRC"
habang nagbabasa ng lumang bagong refname; gawin
irkerhook --refname=${refname} $(git rev-list --reverse ${old}..${new})
tapos

Para sa kaginhawahan, ito ay ipinatupad ng irkerhook-git helper script.

Maaaring itakda ang mga kagustuhan sa repo config file sa isang [irker] na seksyon. Narito ang isang halimbawa
kung ano ang maaaring hitsura nito:

[irker]
proyekto = gpsd
kulay = ANSI
channels = irc://chat.freenode.net/gpsd,irc://chat.freenode.net/commits

Hindi mo dapat itakda ang variable na "repository" (magkukuwenta ng katumbas). Walang pagtatangkang
ay ginawa upang bigyang-kahulugan ang isang irker.conf file.

Ang default na halaga ng variable na "proyekto" ay ang basename ng direktoryo ng repositoryo.
Ang default na halaga ng variable na "urlprefix" ay "cgit".

Mayroong isang git-specific na variable, "revformat", na kinokontrol ang format ng commit
identifier sa isang notification. Maaaring mayroon itong mga sumusunod na halaga:

hilaw
buong hex ID ng commit

maikli
unang 12 character ng hex ID

ilarawan
ilarawan kaugnay sa huling tag, bumabalik sa maikling

Ang default ay 'ilarawan'.

Pagbabagsak
Sa ilalim ng Subversion, tinatanggap ng irkerhook.py ang isang --repository na opsyon na may halaga (ang absolute
pathname ng Subversion repository) at isang commit argument (ang numeric revision level
ng pangako). Ang mga default ay ang kasalukuyang gumaganang direktoryo at HEAD, ayon sa pagkakabanggit.

Tandaan, gayunpaman, na ikaw hindi maaari default ang repositoryong argumento sa loob ng isang Subversion
post-commit hook; ito ay dahil sa isang limitasyon ng Subversion, na ang pagkuha ng
hindi maaasahan ang kasalukuyang direktoryo sa loob ng mga kawit na ito. Sa halip, ang mga halaga ay dapat na dalawa
mga argumento na ipinapasa ng Subversion sa kawit na iyon bilang mga argumento. Kaya, isang tipikal na invocation sa
ang post-commit script ay magiging ganito:

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

Ang iba pang --variable=value na mga setting ay maaari ding ibigay sa command line, at i-override
anumang mga setting sa isang irker.conf file.

Ang default para sa variable ng proyekto ay ang basename ng repositoryo. Ang default na halaga
ng variable na "urlprefix" ay "viewcvs".

Kung mayroong irker.conf file sa root directory ng repository (hindi sa checkout directory
ngunit kung saan nakatira ang mga internal tulad ng "format" na file) ang hook ay magbibigay-kahulugan sa variable
mga setting mula dito. Narito ang isang halimbawa kung ano ang maaaring hitsura ng naturang file:

# irkerhook variable na setting para sa irker project
proyekto = irker
channels = irc://chat.freenode/irker,irc://chat.freenode/commits
tcp = mali

Huwag itakda ang mga variable na "repository" o "commit" sa file na ito; na magiging malungkot
resulta.

Walang mga variable na partikular sa Subversion.

papalit-palit
Sa ilalim ng Mercurial, ang irkerhook.py ay maaaring gamitin sa dalawang paraan: alinman bilang Python hook
(ginustong) o bilang isang script.

Para tawagin itong Python hook, idagdag ang cololing sa "commit" o "incoming" hook
deklarasyon sa iyong Mercurial repository:

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

Kapag tinawag bilang isang script, tinatanggap ng hook ang isang --repository na opsyon na may halaga (ang absolute
pathname ng Mercurial repository) at maaaring kumuha ng commit argument (ang Mercurial hash
ID ng commit o isang reference dito). Ang default para sa argumento ng repositoryo ay ang
kasalukuyang direktoryo. Ang default na argumento ng commit ay '-1', na tumutukoy sa kasalukuyang tip
mangako

Tulad ng para sa git, sa parehong mga kaso ang lahat ng mga variable ay maaaring itakda sa repo hgrc file sa isang [irker]
seksyon. Ang variable ng command-line=value argument ay tinatanggap ngunit hindi kinakailangan para sa script
panawagan. Walang ginawang pagtatangka upang bigyang-kahulugan ang isang irker.conf file.

Ang default na halaga ng variable na "proyekto" ay ang basename ng direktoryo ng repositoryo.
Ang default na value ng "urlprefix" na variable ay ang value ng "web.baseurl" config
halaga, kung mayroon.

Pagsasala
Posibleng i-filter ang mga commit bago ipadala ang mga ito sa irkerd.

Kailangan mong tukuyin ang filtercmd opsyon, na magiging command na irkerhook.py ay tatakbo.
Dapat tanggapin ng utos na ito ang isang argumento, na isang representasyon ng JSON ng commit at
extractor metadata (kabilang ang variable ng mga channel). Ang utos ay dapat na naglalabas sa pamantayan
mag-output ng JSON na representasyon ng (posibleng binago) metadata.

Nasa ibaba ang isang halimbawang filter:

#!/usr/bin/env python
# Ito ay isang maliit na halimbawa ng isang metadata filter.
# Ang ginagawa lang nito ay palitan ang pangalan ng may-akda ng commit.
#
import sys, json
metadata = json.loads(sys.argv[1])

metadata['author'] = "Ang Dakila at Makapangyarihang Oz"

i-print json.dumps(metadata)
# wakas

Ang karaniwang error ay magagamit sa hook para sa pag-unlad at mga mensahe ng error.

Opsyon


kinukuha ng irkerhook.py ang mga sumusunod na opsyon:

-n
Pigilan ang paghahatid sa isang daemon. Sa halip, itapon ang nabuong kahilingan sa JSON sa
karaniwang output. Kapaki-pakinabang para sa pag-debug.

-V
Isulat ang bersyon ng programa sa stdout at wakasan.

Gumamit ng irkerhook online gamit ang mga serbisyo ng onworks.net


Mga Libreng Server at Workstation

Mag-download ng Windows at Linux apps

Linux command

Ad