Skip to content

ვებჰუკის დისპეტჩერი

openpr-webhook არის Axum-ზე აგებული Rust სერვისი, რომელიც ხიდს ქმნის OpenPR-ის პროექტების მართვის მოვლენებსა და ხელოვნური ინტელექტის კოდირების აგენტებს შორის. ის იღებს ვებჰუკის მოვლენებს, ამოწმებს მათ ავთენტურობას და უშვებს შესაბამის აგენტს ამოცანაზე სამუშაოდ.

OpenPR ──ვებჰუკი──▶ openpr-webhook ──CLI──▶ ხელოვნური ინტელექტის აგენტი
│ │
│◀─────გამოძახება────────┘
WSS ტუნელი (არჩევითი, NAT-ის გადალახვისთვის)

ვებჰუკის ბოლო წერტილი

Section titled “ვებჰუკის ბოლო წერტილი”

სერვისი აქვეყნებს HTTP ბოლო წერტილს, რომელიც იღებს OpenPR-ის ვებჰუკის მოვლენებს. ყოველი შემავალი მოთხოვნა მოწმდება HMAC-SHA256 ხელმოწერის ვალიდაციით OpenPR-სა და დისპეტჩერს შორის კონფიგურირებული საზიარო საიდუმლოს გამოყენებით.

მხარდაჭერილი მოვლენების ტიპები მოიცავს issue.created, issue.updated და OpenPR-ის სასიცოცხლო ციკლის სხვა მოვლენებს. დისპეტჩერი ფილტრავს მათ ბოტის ამოცანების გამოსავლენად — მოვლენები, სადაც მინიჭებული პირი ბოტ-მომხმარებელია — და იგნორირებს მხოლოდ ადამიანების მინიჭებებს.

დისპეტჩერი მხარს უჭერს ხუთ აგენტის ტიპს:

აგენტის ტიპიაღწერა
openclawOpenPRX-ის ნაგულისხმევი კოდირების აგენტი
openprxზოგადი დანიშნულების OpenPRX აგენტი
webhookმოვლენების გადაგზავნა გარე ვებჰუკზე
customმომხმარებლის მიერ განსაზღვრული აგენტი მორგებული კონფიგურაციით
cliლოკალურად შესრულებული CLI-ზე დაფუძნებული აგენტი

CLI შემსრულებელი არის გაშვების ძირითადი მექანიზმი. ის უშვებს კოდირების აგენტს როგორც ქვეპროცესს კონტროლირებადი პარამეტრებით.

ნებადართული CLI-ები

Section titled “ნებადართული CLI-ები”

მხოლოდ შემდეგი CLI ინსტრუმენტები არის ნებადართული:

CLIაღწერა
codexOpenAI Codex CLI აგენტი
claude-codeAnthropic Claude Code CLI აგენტი
opencodeღია კოდის კოდირების აგენტი

ამ ნებართვების სიაში არ არსებულ ბინარზე შესრულების ცდა უარყოფილია.

შესრულების პარამეტრები

Section titled “შესრულების პარამეტრები”
პარამეტრინაგულისხმევიაღწერა
სამუშაო დირექტორიაკონფიგურირებული აგენტზერეპოზიტორიის checkout-ის გზა
ტაიმაუტი900წმ (15 წთ)მაქსიმალური შესრულების დრო იძულებით შეწყვეტამდე
პრომპტის შაბლონიაგენტის ტიპის მიხედვითშაბლონი ამოცანის კონტექსტის ჩანაცვლებებით

პრომპტის შაბლონები

Section titled “პრომპტის შაბლონები”

პრომპტის შაბლონები მხარს უჭერენ ჩანაცვლებებს, რომლებიც ივსება ვებჰუკის მოვლენის პეილოადიდან:

You are working on project {{project_name}}.
Issue #{{issue_number}}: {{issue_title}}
Description:
{{issue_description}}
Please implement the required changes and report your results.

გამოძახების ციკლი

Section titled “გამოძახების ციკლი”

აგენტის სამუშაოს დასრულების შემდეგ, შედეგები ბრუნდება OpenPR-ში ერთ-ერთით:

  • MCP — აგენტი პირდაპირ იძახებს OpenPR-ის MCP ინსტრუმენტებს ამოცანის მდგომარეობის განახლებისთვის, კომენტარების დამატებისთვის და სტატუსის გადართვისთვის
  • API — პირდაპირი REST API გამოძახებები OpenPR-ის HTTP ბოლო წერტილებზე

გამოძახება ანახლებს ამოცანას აგენტის გამოსავლით და ცვლის მის მდგომარეობას (ჩვეულებრივ in_progress-დან done-ზე წარმატებისას, ან შეცდომის დეტალების კომენტარის დამატება წარუმატებლობისას).

გაშლებისთვის, სადაც აგენტის ჰოსტი NAT-ის ან ფაიერვოლის უკან დგას, openpr-webhook მხარს უჭერს გამავალ WebSocket Secure (WSS) ტუნელს OpenPR-ის სამართავ სიბრტყესთან.

ტუნელის ნაკადი:

  1. openpr-webhook ხსნის გამავალ WSS კავშირს OpenPR-თან
  2. OpenPR უშვებს ამოცანის მოვლენებს ტუნელით
  3. დისპეტჩერი ადასტურებს მიღებას, ლოკალურად ასრულებს აგენტს
  4. შედეგები ბრუნდება იმავე ტუნელის კავშირით

ეს გამორიცხავს შემავალ პორტის გადამისამართებისა ან საჯარო IP მისამართების საჭიროებას აგენტის ჰოსტზე.

უსაფრთხოების კონტროლი

Section titled “უსაფრთხოების კონტროლი”

openpr-webhook შექმნილია სიღრმისეული დაცვის პრინციპით:

ფუნქციის კარიბჭეები

Section titled “ფუნქციის კარიბჭეები”

ყველა შესაძლებლობა ფუნქციის კარიბჭეების უკან დგას, რომლებიც ნაგულისხმევად false-ია:

ფუნქციანაგულისხმევიაღწერა
cli_executorfalseლოკალური CLI აგენტის შესრულების ჩართვა
wss_tunnelfalseWSS ტუნელის კავშირის ჩართვა
webhook_forwardfalseგარე ვებჰუკებზე გადაგზავნის ჩართვა
custom_agentfalseმორგებული აგენტის კონფიგურაციების ჩართვა

უსაფრთხო რეჟიმი

Section titled “უსაფრთხო რეჟიმი”

უსაფრთხო რეჟიმის ჩართვისას, დისპეტჩერი მუშაობს მხოლოდ წაკითხვის დაკვირვების რეჟიმში: მოვლენები მიიღება და ლოგირდება, მაგრამ აგენტები არ იგზავნება. ეს სასარგებლოა ვებჰუკის კავშირის ტესტირებისა და მოვლენების პეილოადების ვალიდაციისთვის შესრულების ჩართვამდე.

შემსრულებლის ნებართვების სია

Section titled “შემსრულებლის ნებართვების სია”

მკაცრი CLI ნებართვების სია (codex, claude-code, opencode) თავიდან აცილებს თვითნებური ბრძანების შესრულებას. ნებართვების სია ჩაკომპილირებულია ბინარში და ვერ შეიცვლება მუშაობის დროს მხოლოდ კონფიგურაციით.

[webhook]
secret = "your-hmac-secret"
listen = "0.0.0.0:8091"
[executor]
working_dir = "/opt/repos"
timeout_secs = 900
safe_mode = false
[agents.default]
type = "cli"
cli = "claude-code"
prompt_template = "default.txt"
Terminal window
# აშენება
cargo build --release
# ნაგულისხმევი კონფიგურაციით გაშვება
./target/release/openpr-webhook
# მორგებული კონფიგურაციის გზით გაშვება
./target/release/openpr-webhook --config /etc/openpr-webhook/config.toml