InglêsFrancêsEspanhol

Ad


favicon do OnWorks

irkerhook - Online na nuvem

Execute o irkerhook no provedor de hospedagem gratuita OnWorks no Ubuntu Online, Fedora Online, emulador online do Windows ou emulador online do MAC OS

Este é o comando irkerhook que pode ser executado no provedor de hospedagem gratuita OnWorks usando uma de nossas várias estações de trabalho online gratuitas, como Ubuntu Online, Fedora Online, emulador online do Windows ou emulador online do MAC OS

PROGRAMA:

NOME


irkerhook - script de gancho do repositório emitindo notificações do irker

SINOPSE


irkerhook.py [-n] [-V] [[--variable = value...]] [[ID de confirmação...]]

DESCRIÇÃO


irkerhook.py é um script Python destinado a ser chamado a partir do gancho post-commit de um
repositório de controle de versão. Seu trabalho é coletar informações sobre o commit que disparou
o gancho (e possivelmente as preferências definidas pelo proprietário do repositório) e enviar essas informações
a uma instância de irkerd para encaminhar a vários canais de anúncio.

A invocação e o comportamento adequados de irkerhook.py variam dependendo de qual VCS
(sistema de controle de versão) está chamando. Existem quatro lugares diferentes a partir dos quais pode
extrair informações:

1. Chamadas para utilitários VCS.

2. Em VCSes como o git que suportam variáveis ​​de configuração definidas pelo usuário, variáveis ​​com
o prefixo "irker.".

3. Em outros VCSes, um arquivo de configuração, "irker.conf", nos internos do repositório
diretório.

4. Argumentos de linha de comando no formato --variable = value.

As seguintes variáveis ​​são gerais para todos os VCSes suportados:

projeto
O nome do projeto. Deve ser um identificador relativamente curto; geralmente aparecerá
logo no início de uma notificação.

repo
O nome do diretório de nível superior do repositório. Se não for especificado, o padrão é um
cópia em minúsculas do nome do projeto.

canais
Um URL de canal IRC, ou lista separada por vírgulas do mesmo, identificando canais para os quais
notificações devem ser enviadas. Se não for especificado, o padrão é o freenode #commits
canal.

servidor
O host no qual o daemon do irker de retransmissão de notificação deve residir.
O padrão é "localhost".

email
Se configurado, use e-mail para comunicação em vez de TCP ou UDP. O valor é usado como
endereço de e-mail de destino.

tcp
Se for "verdadeiro", use TCP para comunicação; se for "falso", use UDP. O padrão é "falso".

prefixo de url
Prefixo de URL do changeset para seu repo. Quando o ID de confirmação é anexado a isso, ele deve
aponte para um CGI que exibirá o commit por meio do cgit, gitweb ou algo semelhante.
Os padrões provavelmente funcionarão se você tiver uma configuração gitweb / cgit típica.

Se o valor desta variável for "Nenhum", geração do campo URL no commit
as notificações serão suprimidas. Outros valores mágicos são "cgit", "gitweb" e
"viewcvs", que se expandem para modelos de URL que geralmente funcionam com esses sistemas.

Os cookies mágicos "% (host) s" e% (repo) s "podem ocorrer neste URL. O primeiro é
expandido para o FQDN do host no qual irkerhook.py está sendo executado; o último é
expandido para o valor da variável "repo".

minúsculo
Modelo de URL apontando para um serviço de compactação de URLs para que ocupem menos
espaço na linha de notificação. Se o valor desta variável for "Nenhum", não
compressão será tentada.

cor
Se for "mIRC", realce os campos de notificação com códigos de cores mIRC. Se for "ANSI", realce
campos de notificação com sequências de escape de cor ANSI. O padrão é "nenhum" (sem cores).
Os códigos ANSI são compatíveis com Chatzilla, irssi, ircle e BitchX; códigos mIRC são apenas
reconhecido em mIRC, XChat, KVirc, Konversation ou weechat.

Observação: se você ativar esse recurso e as notificações pararem de aparecer em seu canal, você precisa
para desligar o filtro de cores do IRC naquele canal. Para fazer isso você vai precisar de op
privilégios; emita o comando "/ mode -c "com substituído por seu
nome do canal. Pode ser necessário primeiro emitir o comando "/ msg chanserv set
MLOCK + nt-slk ".

canais máximos
Interpretado como um número inteiro. Se não for zero, limita o número de canais que o gancho irá
interpretar a partir da variável "canais".

Esta variável não pode ser definida por meio de variáveis ​​de configuração VCS ou irker.conf; pode
somente ser definido com um argumento de linha de comando. Assim, em um site de forja em que repositório
os proprietários não têm permissão para modificar seus scripts pós-confirmação, um administrador do site pode
configure-o para evitar o spamming de espingarda por proprietários de projetos mal-intencionados. Configurando-o para um valor
menos de 2, no entanto, provavelmente não seria sensato.

cialike
Se não estiver vazio e não for "Nenhum" (o padrão), isso emula o antigo comportamento da CIA de
abandonando longas listas de arquivos em favor de um resumo do formulário (N arquivos em M
diretórios). O valor deve ser numérico, fornecendo um valor limite para o comprimento do
lista de arquivos em caracteres.

git
No git, a maneira normal de invocar este gancho (de dentro do gancho de atualização) passa um
refname seguido por uma lista de commits. Porque git lista de rev normalmente lista da maioria
recente para o mais antigo, você vai querer usar --reverse para fazer as notificações serem omitidas em
ordem cronológica. Em um script de atualização normal, a invocação deve se parecer com isto

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

exceto que você precisará de um caminho absoluto para irkerhook.py.

Para fins de teste e compatibilidade com versões anteriores, se você invocar irkerhook.py sem
argumentos (como em um gancho post-commit) ele se comportará como se tivesse sido chamado como
esta:

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

No entanto, isso não dará o resultado correto quando você enviar para um branch não padrão de um
repositório básico.

Uma maneira típica de instalar este gancho é, na verdade, no gancho pós-recebimento, porque ele obtém
todos os detalhes necessários e não abortará o push em caso de falha. Use o seguinte
script:

#!/ Bin / sh

echo "enviando notificação IRC"
while read old new refname; Faz
irkerhook --refname = $ {refname} $ (git rev-list --reverse $ {old} .. $ {new})
feito

Por conveniência, isso é implementado pelo script auxiliar irkerhook-git.

As preferências podem ser definidas no arquivo de configuração do repo em uma seção [irker]. Aqui está um exemplo
de como isso pode ser:

[irritado]
projeto = gpsd
cor = ANSI
canais = irc: //chat.freenode.net/gpsd,irc: //chat.freenode.net/commits

Você não deve definir a variável "repositório" (um equivalente será calculado). Sem tentativa
é feito para interpretar um arquivo irker.conf.

O valor padrão da variável "projeto" é o nome de base do diretório do repositório.
O valor padrão da variável "urlprefix" é "cgit".

Existe uma variável específica do git, "revformat", controlando o formato do commit
identificador em uma notificação. Pode ter os seguintes valores:

cru
ID hexadecimal completo de confirmação

baixo
primeiros 12 caracteres do ID hexadecimal

descreve
descrever em relação à última tag, voltando ao curto

O padrão é 'descrever'.

Subversão
No Subversion, irkerhook.py aceita uma opção --repository com valor (o valor absoluto
nome do caminho do repositório Subversion) e um argumento de confirmação (o nível de revisão numérico
do commit). Os padrões são o diretório de trabalho atual e o HEAD, respectivamente.

Observe, no entanto, que você não podes padrão o argumento do repositório dentro de um Subversion
gancho post-commit; isso é devido a uma limitação do Subversion, que é obter o
o diretório atual não é confiável dentro desses ganchos. Em vez disso, os valores devem ser os dois
argumentos que o Subversion passa para aquele gancho como argumentos. Assim, uma invocação típica em
o script post-commit terá a seguinte aparência:

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

Outras configurações de --variable = value também podem ser fornecidas na linha de comando e irão sobrescrever
quaisquer configurações em um arquivo irker.conf.

O padrão para a variável do projeto é o nome de base do repositório. O valor padrão
da variável "urlprefix" é "viewcvs".

Se um arquivo irker.conf existir no diretório raiz do repositório (não no diretório de checkout
mas onde componentes internos, como o arquivo de "formato" residem), o gancho interpretará a variável
configurações dele. Aqui está um exemplo de como esse arquivo pode ser:

# configurações de variáveis ​​do irkerhook para o projeto irker
projeto = irker
canais = irc: //chat.freenode/irker,irc: //chat.freenode/commits
tp = falso

Não defina as variáveis ​​de "repositório" ou "confirmação" neste arquivo; isso teria sido infeliz
resultados.

Não há variáveis ​​específicas do Subversion.

mercurial
No Mercurial, irkerhook.py pode ser chamado de duas maneiras: como um gancho Python
(preferencial) ou como um script.

Para chamá-lo como um gancho Python, adicione o collowing ao gancho "commit" ou "entrando"
declaração em seu repositório Mercurial:

[ganchos]
Entry.irker = python: /path/to/irkerhook.py: hg_hook

Quando chamado como um script, o gancho aceita uma opção --repository com valor (o absoluto
nome do caminho do repositório Mercurial) e pode receber um argumento de confirmação (o hash Mercurial
ID do commit ou uma referência a ele). O padrão para o argumento do repositório é o
diretório atual. O argumento de confirmação padrão é '-1', designando a dica atual
comprometer-se.

Quanto ao git, em ambos os casos todas as variáveis ​​podem ser definidas no arquivo repo hgrc em um [irker]
seção. Variável de linha de comando = argumentos de valor são aceitos, mas não necessários para o script
invocação. Nenhuma tentativa é feita para interpretar um arquivo irker.conf.

O valor padrão da variável "projeto" é o nome de base do diretório do repositório.
O valor padrão da variável "urlprefix" é o valor da configuração "web.baseurl"
valor, se existir.

Filtragem
É possível filtrar os commits antes de enviá-los ao irkerd.

Você tem que especificar o filtro cmd opção, que será o comando irkerhook.py será executado.
Este comando deve aceitar um argumento, que é uma representação JSON de commit e
metadados do extrator (incluindo a variável de canais). O comando deve emitir para padrão
produzir uma representação JSON de metadados (possivelmente alterados).

Abaixo está um exemplo de filtro:

#!/ usr / bin / env python
# Este é um exemplo trivial de um filtro de metadados.
# Tudo o que faz é mudar o nome do autor do commit.
#
importar sistema, json
metadados = json.loads (sys.argv [1])

metadata ['autor'] = "O Grande e Poderoso Oz"

impressão json.dumps(metadados)
# fim

O erro padrão está disponível para o gancho para mensagens de progresso e erro.

OPÇÕES


irkerhook.py tem as seguintes opções:

-n
Suprima a transmissão para um daemon. Em vez disso, despeje a solicitação JSON gerada para
saída padrão. Útil para depuração.

-V
Grave a versão do programa em stdout e termine.

Use irkerhook online usando serviços onworks.net


Servidores e estações de trabalho gratuitos

Baixar aplicativos Windows e Linux

Comandos Linux

Ad