英语法语西班牙语

Ad


OnWorks 网站图标

irkerhook - 云端在线

通过 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器在 OnWorks 免费托管服务提供商中运行 irkerhook

这是 irkerhook 命令,可以使用我们的多个免费在线工作站之一在 OnWorks 免费托管服务提供商中运行,例如 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器

程序:

您的姓名


irkerhook - 发布 irker 通知的存储库挂钩脚本

概要


伊克胡克.py [-n] [-V] [[--变量=值...]] [[提交编号...]]]

商品描述


irkerhook.py 是一个 Python 脚本,旨在从一个
版本控制存储库。 它的工作是收集有关触发的提交的信息
挂钩(以及可能由存储库所有者设置的首选项)并发送该信息
到 irkerd 的一个实例,用于转发到各种公告频道。

irkerhook.py 的正确调用和行为取决于哪个 VCS
(版本控制系统)正在调用它。 它可以从四个不同的地方
提取信息:

1. 调用 VCS 实用程序。

2.在像git这样支持用户可设置的配置变量的VCS中,变量带有
前缀“irker.”。

3. 在其他 VCS 中,存储库内部的配置文件“irker.conf”
目录。

4. --variable=value 形式的命令行参数。

以下变量适用于所有受支持的 VCS:

项目
项目名称。 应该是一个相对较短的标识符; 通常会出现
在通知的最开始。

回购
存储库顶级目录的名称。 如果未指定,则默认为
项目名称的小写副本。

通道
IRC 频道 URL 或相同的逗号分隔列表,用于标识要访问的频道
将发送通知。 如果未指定,则默认为 freenode #commits
通道。

服务器
通知中继 irker 守护程序应驻留的主机。
默认为“本地主机”。

邮箱地址
如果设置,则使用电子邮件而不是 TCP 或 UDP 进行通信。 该值用作
目标邮件地址。

TCP
如果为“true”,则使用 TCP 进行通信; 如果为“false”,则使用 UDP。 默认为“假”。

网址前缀
您的存储库的变更集 URL 前缀。 当提交 ID 附加到这个时,它应该
指向一个 CGI,它将通过 cgit、gitweb 或类似的东西显示提交。
如果你有一个典型的 gitweb/cgit 设置,默认值可能会起作用。

如果该变量的值为“None”,则在commit中生成URL字段
通知将被抑制。 其他魔法值是“cgit”、“gitweb”和
“viewcvs”,它扩展到通常适用于这些系统的 URL 模板。

这个 URL 中可能会出现魔法 cookie "%(host)s" 和 %(repo)s"。前者是
扩展到运行 irkerhook.py 的主机的 FQDN; 后者是
扩展为“repo”变量的值。

纤细化器
URL 模板指向用于压缩 URL 的服务,因此它们将占用更少
通知行中的空格。 如果该变量的值为“None”,则不
将尝试压缩。

颜色
如果是“mIRC”,则使用 mIRC 颜色代码突出显示通知字段。 如果是“ANSI”,突出显示
带有 ANSI 颜色转义序列的通知字段。 默认为“无”(无颜色)。
Chatzilla、irssi、ircle 和 BitchX 支持 ANSI 代码; 仅 mIRC 代码是
在 mIRC、XChat、KVirc、Konversation 或 weechat 中识别。

注意:如果您开启此功能并且通知停止出现在您的频道上,您需要
关闭该通道上的 IRC 滤色器。 为此,您将需要 op
特权; 发出命令“/mode -c" 与换成你的
频道名称。 您可能需要先发出命令“/msg chanserv set
MLOCK +nt-slk”。

最大通道数
解释为整数。 如果不为零,则限制钩子的通道数
从“通道”变量解释。

该变量不能通过 VCS 配置变量或 irker.conf 设置; 它可以
只能用命令行参数设置。 因此,在存储库所在的伪造站点上
所有者不允许修改他们的提交后脚本,站点管理员可以
将其设置为防止恶意项目所有者进行散弹式垃圾邮件。 将其设置为一个值
然而,小于 2 可能是不明智的。

恰利克
如果不为空且不是“无”(默认值),这将模拟旧的 CIA 行为
删除长文件列表以支持表单摘要(M 中的 N 个文件)
目录)。 该值必须是数字,给出长度的阈值
以字符为单位的文件列表。

混帐
在 git 下,调用这个钩子的正常方法(从更新钩子内)传递给它一个
refname 后跟提交列表。 因为 混帐 版本列表 通常列出大多数
从最近到最旧,您将需要使用 --reverse 使通知在
时间顺序。 在正常的更新脚本中,调用应如下所示

参考名称=$1
旧=$2
新=$3
irkerhook.py --refname=${refname} $(git rev-list --reverse ${old}..${new})

除了您需要 irkerhook.py 的绝对路径。

出于测试目的和向后兼容性,如果您调用 irkerhook.py 时没有
参数(如在提交后挂钩中)它的行为就像它被调用一样
这个:

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

但是,当您推送到 a 的非默认分支时,这不会给出正确的结果
裸回购。

一个典型的安装这个钩子的方法其实是在 post-receive 钩子里,因为它得到
所有必要的细节,并且不会中止推送失败。 使用以下
脚本:

#!/ bin / sh的

echo "发送 IRC 通知"
在阅读旧的新引用名称时; 做
irkerhook --refname=${refname} $(git rev-list --reverse ${old}..${new})
完成

为方便起见,这是由 irkerhook-git 帮助程序脚本实现的。

可以在 [irker] 部分的 repo 配置文件中设置首选项。 这是一个例子
看起来像什么:

[爱克]
项目 = gpsd
颜色 = ANSI
频道 = irc://chat.freenode.net/gpsd,irc://chat.freenode.net/commits

您不应设置“存储库”变量(将计算等效项)。 没有尝试
用于解释 irker.conf 文件。

“project”变量的默认值是存储库目录的基本名称。
“urlprefix”变量的默认值是“cgit”。

有一个特定于 git 的变量,“revformat”,控制提交的格式
通知中的标识符。 它可能具有以下值:


提交的完整十六进制 ID


十六进制 ID 的前 12 个字符

描述
描述相对于最后一个标签,回到空头

默认值为“描述”。

颠覆
在 Subversion 下,irkerhook.py 接受带有值的 --repository 选项(绝对
Subversion 存储库的路径名)和提交参数(数字修订级别
的提交)。 默认值分别是当前工作目录和 HEAD。

但是请注意,您 不能 默认为 Subversion 中的存储库参数
提交后挂钩; 这是因为 Subversion 的一个限制,即获取
当前目录在这些钩子中不可靠。 相反,值必须是两个
Subversion 作为参数传递给该钩子的参数。 因此,一个典型的调用
提交后脚本将如下所示:

回购=$1
转=$2
irkerhook.py --repository=$回购 $REV

其他 --variable=value 设置也可以在命令行上给出,并将覆盖
irker.conf 文件中的任何设置。

项目变量的默认值是存储库的基本名称。 默认值
“urlprefix”变量是“viewcvs”。

如果存储库根目录中存在 irker.conf 文件(不是 checkout 目录
但是在诸如“格式”文件之类的内部组件存在的地方)钩子将解释变量
从中设置。 以下是此类文件的示例:

# irker 项目的 irkerhook 变量设置
项目 = irker
频道 = irc://chat.freenode/irker,irc://chat.freenode/commits
tcp = 假

不要在这个文件中设置“repository”或“commit”变量; 那会不开心
结果。

没有特定于 Subversion 的变量。

水银
在 Mercurial 下,可以通过两种方式调用 irkerhook.py:作为 Python 钩子
(首选)或作为脚本。

要将其称为 Python 钩子,请将以下内容添加到“提交”或“传入”钩子
在您的 Mercurial 存储库中声明:

[钩子]
Incoming.irker = python:/path/to/irkerhook.py:hg_hook

当作为脚本调用时,钩子接受一个带有值的 --repository 选项(绝对
Mercurial 存储库的路径名)并且可以采用提交参数(Mercurial 哈希
提交的 ID 或对它的引用)。 存储库参数的默认值是
当前目录。 默认提交参数是“-1”,指定当前提示
犯罪。

至于 git,在这两种情况下,所有变量都可以在 [irker] 的 repo hgrc 文件中设置
部分。 接受命令行变量=值参数,但脚本不需要
调用。 不会尝试解释 irker.conf 文件。

“project”变量的默认值是存储库目录的基本名称。
“urlprefix”变量的默认值是“web.baseurl”配置的值
值(如果存在)。

过滤
可以在将提交发送到 irkerd 之前过滤提交。

你必须指定 过滤器命令 选项,这将是 irkerhook.py 将运行的命令。
此命令应接受一个参数,即提交和
提取器元数据(包括通道变量)。 该命令应该发出标准
输出(可能已更改)元数据的 JSON 表示。

下面是一个示例过滤器:

#!/usr/bin/环境 蟒蛇
# 这是元数据过滤器的一个简单示例。
# 它所做的只是更改提交作者的姓名。
#
导入系统,json
元数据 = json.loads(sys.argv[1])

metadata['author'] = "伟大而强大的奥兹"

打印 转储文件(元数据)
# 结尾

钩子可以使用标准错误来获取进度和错误消息。

配置


irkerhook.py 采用以下选项:

-n
禁止传输到守护进程。 相反,将生成的 JSON 请求转储到
标准输出。 用于调试。

-V
将程序版本写入 stdout 并终止。

使用 onworks.net 服务在线使用 irkerhook


免费服务器和工作站

下载 Windows 和 Linux 应用程序

Linux 命令

Ad