Tiếng AnhTiếng PhápTiếng Tây Ban Nha

Ad


Biểu tượng yêu thích OnWorks

irkerhook - Trực tuyến trên đám mây

Chạy irkerhook trong nhà cung cấp dịch vụ lưu trữ miễn phí OnWorks trên Ubuntu Online, Fedora Online, trình giả lập trực tuyến Windows hoặc trình mô phỏng trực tuyến MAC OS

Đây là lệnh irkerhook có thể chạy trong nhà cung cấp dịch vụ lưu trữ miễn phí OnWorks bằng cách sử dụng một trong nhiều máy trạm trực tuyến miễn phí của chúng tôi như Ubuntu Online, Fedora Online, trình giả lập trực tuyến Windows hoặc trình mô phỏng trực tuyến MAC OS

CHƯƠNG TRÌNH:

TÊN


irkerhook - tập lệnh móc kho lưu trữ thông báo irker

SYNOPSIS


irkerhook.py [-n] [-V] [[--variable = giá trị...]] [[cam kết-id...]]

MÔ TẢ


irkerhook.py là một tập lệnh Python nhằm mục đích được gọi từ hook post-commit của một
kho lưu trữ kiểm soát phiên bản. Công việc của nó là thu thập thông tin về cam kết đã kích hoạt
móc (và có thể là các tùy chọn do chủ sở hữu kho lưu trữ đặt ra) và gửi thông tin đó
sang một phiên bản của irkerd để chuyển tiếp đến các kênh thông báo khác nhau.

Lời gọi và hành vi thích hợp của irkerhook.py thay đổi tùy thuộc vào VCS nào
(hệ thống kiểm soát phiên bản) đang gọi nó. Có bốn nơi khác nhau mà từ đó nó có thể
trích xuất thông tin:

1. Các cuộc gọi đến các tiện ích VCS.

2. Trong các VCS như git hỗ trợ các biến cấu hình do người dùng thiết lập, các biến có
tiền tố "irker.".

3. Trong các VCS khác, một tệp cấu hình, "irker.conf", trong nội bộ của kho lưu trữ
thư mục.

4. Các đối số dòng lệnh có dạng --variable = value.

Các biến sau đây là chung cho tất cả các VCS được hỗ trợ:

dự án
Tên của dự án. Nên là một định danh tương đối ngắn; thường sẽ xuất hiện
khi bắt đầu một thông báo.

repo
Tên của thư mục cấp cao nhất của kho lưu trữ. Nếu không được chỉ định, mặc định là
bản sao viết thường của tên dự án.

kênh
URL kênh IRC hoặc danh sách được phân tách bằng dấu phẩy giống nhau, xác định các kênh mà
thông báo sẽ được gửi. Nếu không được chỉ định, mặc định là freenode #commits
kênh.

máy chủ
Máy chủ lưu trữ mà daemon irker chuyển tiếp thông báo dự kiến ​​sẽ cư trú.
Mặc định là "localhost".

e-mail
Nếu được đặt, hãy sử dụng email để liên lạc thay vì TCP hoặc UDP. Giá trị được sử dụng làm
địa chỉ thư mục tiêu.

tcp
Nếu "đúng", hãy sử dụng TCP để giao tiếp; nếu "false", hãy sử dụng UDP. Mặc định là "false".

tiền tố url
Thay đổi tiền tố URL cho repo của bạn. Khi ID cam kết được thêm vào này, nó sẽ
chỉ vào một CGI sẽ hiển thị cam kết thông qua cgit, gitweb hoặc một cái gì đó tương tự.
Các giá trị mặc định có thể sẽ hoạt động nếu bạn có thiết lập gitweb / cgit điển hình.

Nếu giá trị của biến này là "Không", thì việc tạo trường URL trong cam kết
thông báo sẽ bị chặn. Các giá trị ma thuật khác là "cgit", "gitweb" và
"viewcvs", mở rộng thành các mẫu URL thường sẽ hoạt động với các hệ thống đó.

Các cookie ma thuật "% (host) s" và% (repo) s "có thể xuất hiện trong URL này. Cái trước là
được mở rộng sang FQDN của máy chủ mà irkerhook.py đang chạy; cái sau là
được mở rộng thành giá trị của biến "repo".

người nhỏ bé
Mẫu URL trỏ đến một dịch vụ nén URL để chúng chiếm ít hơn
khoảng trắng trong dòng thông báo. Nếu giá trị của biến này là "Không", không
nén sẽ được cố gắng.

màu sắc
Nếu "mIRC", hãy đánh dấu các trường thông báo bằng mã màu mIRC. Nếu "ANSI", hãy đánh dấu
các trường thông báo với chuỗi thoát màu ANSI. Mặc định là "none" (không có màu).
Mã ANSI được hỗ trợ trong Chatzilla, irssi, ircle và BitchX; mã mIRC chỉ là
được công nhận trong mIRC, XChat, KVirc, Konversation hoặc weechat.

Lưu ý: nếu bạn bật tính năng này và thông báo ngừng xuất hiện trên kênh của bạn, bạn cần
để tắt bộ lọc màu của IRC trên kênh đó. Để làm điều này, bạn sẽ cần op
đặc quyền; ra lệnh "/ mode -c "với được thay thế bởi của bạn
Tên kênh. Trước tiên, bạn có thể cần phải phát hành lệnh "/ msg chanserv set
MLOCK + nt-slk ”.

kênh tối đa
Được hiểu là một số nguyên. Nếu không, giới hạn số lượng kênh mà hook sẽ
diễn giải từ biến "kênh".

Không thể đặt biến này thông qua các biến cấu hình VCS hoặc irker.conf; nó có thể
chỉ được đặt với một đối số dòng lệnh. Vì vậy, trên một trang web giả mạo trong đó kho lưu trữ
chủ sở hữu không được phép sửa đổi tập lệnh sau cam kết của họ, quản trị viên trang web có thể
đặt nó để ngăn chặn việc gửi thư rác bằng shotgun bởi các chủ dự án độc hại. Đặt nó thành một giá trị
ít hơn 2, tuy nhiên, có lẽ sẽ là không khôn ngoan.

tương tự
Nếu không trống và không phải "Không có" (mặc định), điều này mô phỏng hành vi cũ của CIA là
bỏ danh sách dài các tệp có lợi cho một bản tóm tắt của biểu mẫu (N tệp trong M
thư mục). Giá trị phải là số cho giá trị ngưỡng cho độ dài của
danh sách tệp bằng ký tự.

git
Theo git, cách thông thường để gọi hook này (từ bên trong hook cập nhật) chuyển nó
đổi tên theo sau là danh sách các cam kết. Tại vì git danh sách sửa đổi thường là danh sách từ hầu hết
từ gần đây đến cũ nhất, bạn sẽ muốn sử dụng - đảo ngược để bỏ qua thông báo trong
thứ tự thời gian. Trong một tập lệnh cập nhật thông thường, lời gọi sẽ giống như thế này

refname = $ 1
cũ = $ 2
mới = $ 3
irkerhook.py --refname = $ {refname} $ (git rev-list --reverse $ {old} .. $ {new})

ngoại trừ việc bạn sẽ cần một đường dẫn tuyệt đối cho irkerhook.py.

Đối với mục đích thử nghiệm và khả năng tương thích ngược, nếu bạn gọi irkerhook.py không có
các đối số (như trong hook post-commit) nó sẽ hoạt động như thể nó đã được gọi là
điều này:

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

Tuy nhiên, điều này sẽ không cho kết quả phù hợp khi bạn đẩy đến một nhánh không phải mặc định của
repo trần.

Một cách điển hình để cài đặt hook này thực sự là trong hook post-nhận, vì nó được
tất cả các chi tiết cần thiết và sẽ không bỏ dở việc đẩy lên thất bại. Sử dụng những thứ sau
kịch bản:

#!/ Bin / sh

echo "gửi thông báo IRC"
trong khi đọc đổi tên mới cũ; làm
irkerhook --refname = $ {refname} $ (git rev-list --reverse $ {old} .. $ {new})
thực hiện

Để thuận tiện, điều này được thực hiện bởi tập lệnh trợ giúp irkerhook-git.

Các tùy chọn có thể được đặt trong tệp cấu hình repo trong phần [irker]. Đây là một ví dụ
về những gì có thể trông như thế này:

[khó chịu]
dự án = gpsd
màu = ANSI
channel = irc: //chat.freenode.net/gpsd,irc: //chat.freenode.net/commits

Bạn không nên đặt biến "kho lưu trữ" (một biến tương đương sẽ được tính toán). Không cố gắng
được tạo ra để diễn giải một tệp irker.conf.

Giá trị mặc định của biến "dự án" là tên cơ sở của thư mục kho lưu trữ.
Giá trị mặc định của biến "urlprefix" là "cgit".

Có một biến cụ thể git, "revformat", kiểm soát định dạng của cam kết
định danh trong một thông báo. Nó có thể có các giá trị sau:

nguyên
đầy đủ hex ID của cam kết

ngắn
12 ký tự đầu tiên của hex ID

mô tả
mô tả liên quan đến thẻ cuối cùng, rút ​​ngắn lại

Mặc định là 'mô tả'.

Sự lật đổ
Trong Subversion, irkerhook.py chấp nhận một tùy chọn - kho lưu trữ có giá trị (giá trị tuyệt đối
tên đường dẫn của kho lưu trữ Subversion) và một đối số cam kết (mức sửa đổi số
của cam kết). Các giá trị mặc định tương ứng là thư mục làm việc hiện tại và HEAD.

Tuy nhiên, lưu ý rằng bạn không thể mặc định đối số kho lưu trữ bên trong Subversion
móc sau cam kết; điều này là do hạn chế của Subversion, đó là nhận được
thư mục hiện tại không đáng tin cậy bên trong các móc này. Thay vào đó, các giá trị phải là hai
các đối số mà Subversion chuyển tới móc đó dưới dạng đối số. Do đó, một lời kêu gọi điển hình trong
tập lệnh sau cam kết sẽ giống như sau:

REPO = $ 1
REV = 2 đô la
irkerhook.py --repository = $ REPO $ REV

Các cài đặt giá trị --variable = khác cũng có thể được đưa ra trên dòng lệnh và sẽ ghi đè
bất kỳ cài đặt nào trong tệp irker.conf.

Mặc định cho biến dự án là tên cơ sở của kho lưu trữ. Giá trị mặc định
của biến "urlprefix" là "viewcvs".

Nếu tệp irker.conf tồn tại trong thư mục gốc của kho lưu trữ (không phải thư mục kiểm tra
nhưng khi nội bộ chẳng hạn như tệp "định dạng" hoạt động) thì hook sẽ diễn giải biến
cài đặt từ nó. Dưới đây là một ví dụ về một tệp như vậy có thể trông như thế nào:

# cài đặt biến irkerhook cho dự án irker
dự án = irker
channel = irc: //chat.freenode/irker,irc: //chat.freenode/commits
tcp = sai

Không đặt các biến "kho lưu trữ" hoặc "cam kết" trong tệp này; điều đó sẽ không hạnh phúc
kết quả.

Không có biến Subversion cụ thể.

lanh lợi
Trong Mercurial, irkerhook.py có thể được gọi theo hai cách: hoặc dưới dạng móc Python
(ưu tiên) hoặc như một tập lệnh.

Để gọi nó là một hook Python, hãy thêm collow vào hook "commit" hoặc "incoming"
khai báo trong kho lưu trữ Mercurial của bạn:

[móc]
incoming.irker = python: /path/to/irkerhook.py: hg_hook

Khi được gọi dưới dạng tập lệnh, hook chấp nhận tùy chọn --repository với giá trị (giá trị tuyệt đối
tên đường dẫn của kho lưu trữ Mercurial) và có thể lấy đối số cam kết (băm Mercurial
ID của cam kết hoặc tham chiếu đến nó). Mặc định cho đối số kho lưu trữ là
thư mục hiện tại. Đối số cam kết mặc định là '-1', chỉ định mẹo hiện tại
cam kết.

Đối với git, trong cả hai trường hợp, tất cả các biến có thể được đặt trong tệp repo hgrc trong [irker]
phần. Đối số dòng lệnh biến = giá trị được chấp nhận nhưng không bắt buộc đối với tập lệnh
sự cầu khẩn. Không có nỗ lực nào được thực hiện để diễn giải tệp irker.conf.

Giá trị mặc định của biến "dự án" là tên cơ sở của thư mục kho lưu trữ.
Giá trị mặc định của biến "urlprefix" là giá trị của cấu hình "web.baseurl"
giá trị, nếu nó tồn tại.

Lọc
Có thể lọc các cam kết trước khi gửi chúng đến irkerd.

Bạn phải chỉ định bộ lọccmd tùy chọn này sẽ là lệnh irkerhook.py sẽ chạy.
Lệnh này phải chấp nhận một đối số, là một đại diện JSON của cam kết và
siêu dữ liệu trình trích xuất (bao gồm cả biến kênh). Lệnh phải phát ra theo tiêu chuẩn
xuất ra bản trình bày JSON của siêu dữ liệu (có thể bị thay đổi).

Dưới đây là một bộ lọc ví dụ:

#!/ usr / bin / env mãng xà
# Đây là một ví dụ nhỏ về bộ lọc siêu dữ liệu.
# Tất cả những gì nó làm là thay đổi tên của tác giả của cam kết.
#
nhập sys, json
siêu dữ liệu = json.loads (sys.argv [1])

metadata ['author'] = "Oz Vĩ đại và Mạnh mẽ"

in json.dumps(metadata)
# kết thúc

Lỗi tiêu chuẩn có sẵn cho móc để biết tiến trình và thông báo lỗi.

LỰA CHỌN


irkerhook.py có các tùy chọn sau:

-n
Ngăn chặn truyền tới daemon. Thay vào đó, hãy kết xuất yêu cầu JSON đã tạo sang
đầu ra tiêu chuẩn. Hữu ích cho việc gỡ lỗi.

-V
Viết phiên bản chương trình thành stdout và kết thúc.

Sử dụng irkerhook trực tuyến bằng các dịch vụ onworks.net


Máy chủ & Máy trạm miễn phí

Tải xuống ứng dụng Windows & Linux

Lệnh Linux

Ad