Skip to content

GitHub Integration ​

Triggerfish GitHub ಜೊತೆ ಎರಡು ಪೂರಕ ವಿಧಾನಗಳ ಮೂಲಕ integrate ಮಾಡುತ್ತದೆ:

Quick Setup: REST API Tools ​

GitHub ಸಂಪರ್ಕಿಸಲು ಅತ್ಯಂತ ವೇಗದ ಮಾರ್ಗ. Repos, PRs, issues, Actions, ಮತ್ತು code search ಗಾಗಿ 14 built-in tools -- ಎಲ್ಲ classification-aware taint propagation ಜೊತೆ.

bash
triggerfish connect github

ಇದು fine-grained Personal Access Token ತಯಾರಿಸಲು walk-through ನೀಡುತ್ತದೆ, validate ಮಾಡುತ್ತದೆ, ಮತ್ತು OS keychain ನಲ್ಲಿ store ಮಾಡುತ್ತದೆ. ಅಷ್ಟೆ -- ನಿಮ್ಮ agent ಈಗ ಎಲ್ಲ github_* tools ಬಳಸಬಹುದು.

Skills ಹೇಗೆ ಕಾರ್ಯ ನಿರ್ವಹಿಸುತ್ತವೆ ಎಂದು Skills documentation ನೋಡಿ, ಅಥವಾ ಎಲ್ಲ ಲಭ್ಯ tools ನೋಡಲು triggerfish skills list ಚಲಾಯಿಸಿ.

Advanced: gh CLI + Webhooks ​

ಸಂಪೂರ್ಣ development feedback loop ಗಾಗಿ (agent branches ತಯಾರಿಸಿ, PRs ತೆರೆದು, code review ಗೆ ಪ್ರತಿಕ್ರಿಯಿಸಿ), Triggerfish exec ಮೂಲಕ gh CLI ಮತ್ತು webhook-driven review delivery ಸಹ ಬೆಂಬಲಿಸುತ್ತದೆ. ಇದು ಮೂರು composable pieces ಬಳಸುತ್ತದೆ:

  1. gh CLI via exec -- ಎಲ್ಲ GitHub actions perform ಮಾಡಿ (PRs create, reviews read, comment, merge)
  2. Review delivery -- ಎರಡು modes: webhook events (instant, public endpoint ಅಗತ್ಯ) ಅಥವಾ gh pr view ಮೂಲಕ trigger-based polling (firewalls ಹಿಂದೆ ಕಾರ್ಯ ನಿರ್ವಹಿಸುತ್ತದೆ)
  3. git-branch-management skill -- agent ಗೆ complete branch/PR/review workflow ಕಲಿಸುತ್ತದೆ

ಜೊತೆಯಾಗಿ, ಇವು ಸಂಪೂರ್ಣ development feedback loop ತಯಾರಿಸುತ್ತವೆ: agent branches ತಯಾರಿಸಿ, code commit ಮಾಡಿ, PRs ತೆರೆದು, reviewer feedback ಗೆ ಪ್ರತಿಕ್ರಿಯಿಸುತ್ತದೆ -- custom GitHub API code ಬೇಡ.

Prerequisites ​

gh CLI ​

GitHub CLI (gh) Triggerfish ಚಲಿಸುವ environment ನಲ್ಲಿ install ಮತ್ತು authenticate ಮಾಡಲ್ಪಡಬೇಕು.

bash
# Install gh (Fedora/RHEL)
sudo dnf install gh

# Install gh (macOS)
brew install gh

# Install gh (Debian/Ubuntu)
sudo apt install gh

# Authenticate
gh auth login

Authentication verify ಮಾಡಿ:

bash
gh auth status

Agent exec.run("gh ...") ಮೂಲಕ gh ಬಳಸುತ್ತದೆ -- gh login ಹೊರತು separate GitHub token configuration ಬೇಡ.

Git ​

Git install ಮತ್ತು user name ಮತ್ತು email ಜೊತೆ configure ಮಾಡಲ್ಪಡಬೇಕು:

bash
git config --global user.name "Triggerfish Agent"
git config --global user.email "triggerfish@example.com"

Repository Access ​

Agent workspace git repository ಆಗಿರಬೇಕು (ಅಥವಾ ಒಂದನ್ನು ಒಳಗೊಂಡಿರಬೇಕು) ಮತ್ತು remote ಗೆ push access ಇರಬೇಕು.

Review Delivery ​

Agent ಹೊಸ PR reviews ಬಗ್ಗೆ ತಿಳಿಯಲು ಎರಡು ಮಾರ್ಗಗಳಿವೆ. ಒಂದು ಆಯ್ಕೆ ಮಾಡಿ ಅಥವಾ ಎರಡೂ ಒಟ್ಟಿಗೆ ಬಳಸಿ.

Option A: Trigger-Based Polling ​

Inbound connectivity ಬೇಡ. Agent schedule ಮೇಲೆ gh pr view ಬಳಸಿ GitHub poll ಮಾಡುತ್ತದೆ. ಯಾವುದೇ firewall, NAT, ಅಥವಾ VPN ಹಿಂದೆ ಕಾರ್ಯ ನಿರ್ವಹಿಸುತ್ತದೆ.

triggerfish.yaml ಗೆ cron job ಸೇರಿಸಿ:

yaml
scheduler:
  cron:
    jobs:
      - id: pr-review-check
        schedule: "*/15 * * * *"
        task: >
          Check all open PR tracking files in scratch/pr-tracking/.
          For each open PR, query GitHub for new reviews or state changes
          using gh pr view. Address any review feedback, handle merges
          and closures.
        classification: INTERNAL

ಅಥವಾ agent ನ TRIGGER.md ಗೆ "check open PRs for review feedback" ಸೇರಿಸಿ regular trigger wakeup cycle ನಲ್ಲಿ execute ಆಗಲು.

Option B: Webhook Setup ​

Webhooks review events instantly deliver ಮಾಡುತ್ತವೆ. Triggerfish gateway GitHub servers ನಿಂದ reachable ಆಗಿರಬೇಕು (ಉದಾ. Tailscale Funnel, reverse proxy, ಅಥವಾ tunnel ಮೂಲಕ).

Step 1: Webhook secret generate ಮಾಡಿ ​

bash
openssl rand -hex 32

ಇದನ್ನು environment variable ಆಗಿ store ಮಾಡಿ:

bash
export GITHUB_WEBHOOK_SECRET="<generated-secret>"

Restarts ನ ನ್ತರ persist ಆಗಲು shell profile ಅಥವಾ secrets manager ಗೆ ಸೇರಿಸಿ.

Step 2: Triggerfish Configure ಮಾಡಿ ​

triggerfish.yaml ಗೆ webhook endpoint ಸೇರಿಸಿ:

yaml
webhooks:
  endpoints:
    - id: github
      path: /webhook/github
      # secret stored in OS keychain
      classification: INTERNAL
      actions:
        - event: "pull_request_review"
          task: >
            A PR review was submitted. Read the PR tracking file from
            scratch/pr-tracking/ to recover context. Check out the branch,
            read the review, address any requested changes, commit, push,
            and comment on the PR with a summary of changes made.
        - event: "pull_request_review_comment"
          task: >
            An inline review comment was posted on a PR. Read the PR
            tracking file, check out the branch, address the specific
            comment, commit, push.
        - event: "issue_comment"
          task: >
            A comment was posted on a PR or issue. Check if this is a
            tracked PR by looking up tracking files in scratch/pr-tracking/.
            If tracked, check out the branch and address the feedback.
        - event: "pull_request.closed"
          task: >
            A PR was closed or merged. Read the tracking file. If merged,
            clean up: delete local branch, archive tracking file to
            completed/. Notify the owner of the merge. If closed without
            merge, archive and notify.

Step 3: Webhook endpoint expose ಮಾಡಿ ​

Triggerfish gateway GitHub servers ನಿಂದ reachable ಆಗಿರಬೇಕು. Options:

Tailscale Funnel (personal use ಗಾಗಿ recommended):

yaml
# In triggerfish.yaml
remote:
  tailscale:
    serve: true
    funnel:
      enabled: true
      paths: ["/webhook/*"]

ಇದು https://<your-machine>.ts.net/webhook/github ಅನ್ನು internet ಗೆ expose ಮಾಡುತ್ತದೆ.

Reverse proxy (nginx, Caddy):

/webhook/github ಅನ್ನು gateway ನ local port ಗೆ forward ಮಾಡಿ.

ngrok (development/testing):

bash
ngrok http 8080

Generated URL ಅನ್ನು webhook target ಆಗಿ ಬಳಸಿ.

Step 4: GitHub webhook configure ಮಾಡಿ ​

ನಿಮ್ಮ GitHub repository (ಅಥವಾ organization) ನಲ್ಲಿ:

  1. Settings > Webhooks > Add webhook ಗೆ ಹೋಗಿ
  2. Payload URL ಅನ್ನು ನಿಮ್ಮ exposed endpoint ಗೆ set ಮಾಡಿ:
    https://<your-host>/webhook/github
  3. Content type ಅನ್ನು application/json ಗೆ set ಮಾಡಿ
  4. Secret ಅನ್ನು GITHUB_WEBHOOK_SECRET ನ ಅದೇ value ಗೆ set ಮಾಡಿ
  5. Which events would you like to trigger this webhook? ಅಡಿಯಲ್ಲಿ Let me select individual events ಆಯ್ಕೆ ಮಾಡಿ ಮತ್ತು check ಮಾಡಿ:
    • Pull requests (pull_request.opened, pull_request.closed cover)
    • Pull request reviews (pull_request_review cover)
    • Pull request review comments (pull_request_review_comment cover)
    • Issue comments (PRs ಮತ್ತು issues ನಲ್ಲಿ issue_comment cover)
  6. Add webhook ಕ್ಲಿಕ್ ಮಾಡಿ

GitHub connection verify ಮಾಡಲು ping event ಕಳಿಸುತ್ತದೆ. Receipt confirm ಮಾಡಲು Triggerfish logs check ಮಾಡಿ:

bash
triggerfish logs --tail

Feedback Loop ಹೇಗೆ ಕಾರ್ಯ ನಿರ್ವಹಿಸುತ್ತದೆ ​

Webhooks ಜೊತೆ (instant) ​

GitHub webhook review loop: agent opens PR, waits, receives webhook on review, reads tracking file, addresses feedback, commits and pushes

Trigger-based polling ಜೊತೆ (firewall ಹಿಂದೆ) ​

GitHub trigger-based review: agent opens PR, writes tracking file, waits for trigger wakeup, polls for reviews, addresses feedback

ಎರಡೂ paths ಅದೇ tracking files ಬಳಸುತ್ತವೆ. Agent ~/.triggerfish/workspace/<agent-id>/scratch/pr-tracking/ ನಿಂದ PR tracking file ಓದಿ context recover ಮಾಡುತ್ತದೆ.

PR Tracking Files ​

Agent ತಯಾರಿಸಿದ ಪ್ರತಿ PR ಗಾಗಿ tracking file write ಮಾಡುತ್ತದೆ:

~/.triggerfish/workspace/<agent-id>/scratch/pr-tracking/<branch-name>.json

Schema:

json
{
  "branch": "triggerfish/agent-1/fix-auth-timeout",
  "prNumber": 42,
  "prUrl": "https://github.com/owner/repo/pull/42",
  "task": "Fix authentication timeout when token expires during long requests",
  "repository": "owner/repo",
  "createdAt": "2025-01-15T10:30:00Z",
  "updatedAt": "2025-01-15T10:30:00Z",
  "lastCheckedAt": "2025-01-15T10:30:00Z",
  "lastReviewId": "",
  "status": "open",
  "commits": [
    "feat: add token refresh before expiry",
    "test: add timeout edge case coverage"
  ]
}

Merge ನಂತರ, tracking files completed/ ಗೆ archive ಮಾಡಲ್ಪಡುತ್ತವೆ.

Merge Policy ​

Default ಆಗಿ, agent approved PRs ಸ್ವಯಂಚಾಲಿತವಾಗಿ merge ಮಾಡುವುದಿಲ್ಲ. Review approve ಆದಾಗ, agent owner ಗೆ notify ಮಾಡಿ explicit merge instruction ಗಾಗಿ ಕಾಯುತ್ತದೆ.

Auto-merge enable ಮಾಡಲು, triggerfish.yaml ಗೆ ಸೇರಿಸಿ:

yaml
github:
  auto_merge: true

Enable ಮಾಡಿದಾಗ, approving review ಸ್ವೀಕರಿಸಿದ ನಂತರ agent gh pr merge --squash --delete-branch ಚಲಾಯಿಸುತ್ತದೆ.

Auto-merge safety ಗಾಗಿ default ಆಗಿ disabled. Agent ನ changes trust

ಮಾಡುತ್ತೀರಿ ಮತ್ತು GitHub ನಲ್ಲಿ branch protection rules (required reviewers, CI checks) configure ಮಾಡಿದ್ದೀರಿ ಎಂದಾಗ ಮಾತ್ರ enable ಮಾಡಿ. :::

Optional: GitHub MCP Server ​

gh CLI ಮತ್ತು built-in tools ಒದಗಿಸುವುದಕ್ಕಿಂತ ಹೆಚ್ಚಿನ GitHub API access ಗಾಗಿ, GitHub MCP server ಸಹ configure ಮಾಡಬಹುದು:

yaml
mcp_servers:
  - id: github
    command: "npx"
    args: ["-y", "@modelcontextprotocol/server-github"]
    # GitHub token is read from the OS keychain
    classification: CONFIDENTIAL

ಹೆಚ್ಚಿನ workflows ಗಾಗಿ ಇದು ಅಗತ್ಯವಿಲ್ಲ -- built-in github_* tools (triggerfish connect github ಮೂಲಕ setup) ಮತ್ತು gh CLI ಎಲ್ಲ ಸಾಮಾನ್ಯ operations cover ಮಾಡುತ್ತವೆ. Built-in tools cover ಮಾಡದ advanced queries ಗಾಗಿ MCP server ಉಪಯುಕ್ತ.

Security Considerations ​

ControlDetail
HMAC verificationಎಲ್ಲ GitHub webhooks processing ಮೊದಲು HMAC-SHA256 ಜೊತೆ verify (webhook mode)
ClassificationGitHub data default ಆಗಿ INTERNAL -- code ಮತ್ತು PR data public channels ಗೆ leak ಆಗುವುದಿಲ್ಲ
Session isolationಪ್ರತಿ webhook event ಅಥವಾ trigger wakeup fresh isolated session spawn ಮಾಡುತ್ತದೆ
No Write-DownINTERNAL-classified PR events ಗೆ agent responses PUBLIC channels ಗೆ ಕಳಿಸಲಾಗದು
Credential handlinggh CLI ತನ್ನ auth token manage ಮಾಡುತ್ತದೆ; triggerfish.yaml ನಲ್ಲಿ GitHub tokens store ಮಾಡಲ್ಪಡುವುದಿಲ್ಲ
Branch namingtriggerfish/ prefix agent branches ಸುಲಭವಾಗಿ identify ಮತ್ತು filter ಮಾಡಲು ಸಾಧ್ಯ

ನಿಮ್ಮ repository ಸೂಕ್ಷ್ಮ code ಒಳಗೊಂಡಿದ್ದರೆ (proprietary, security-critical),

webhook classification INTERNAL ಬದಲಾಗಿ CONFIDENTIAL ಗೆ set ಮಾಡಲು ಪರಿಗಣಿಸಿ. :::

Troubleshooting ​

Webhook events receive ಆಗುತ್ತಿಲ್ಲ ​

  1. Webhook URL external machine ನಿಂದ reachable ಎಂದು check ಮಾಡಿ (curl ಬಳಸಿ)
  2. GitHub ನಲ್ಲಿ Settings > Webhooks > Recent Deliveries tab errors ಪರಿಶೀಲಿಸಿ
  3. Secret GitHub ಮತ್ತು GITHUB_WEBHOOK_SECRET ನಡುವೆ match ಆಗುತ್ತಿದೆಯೇ verify ಮಾಡಿ
  4. Triggerfish logs check ಮಾಡಿ: triggerfish logs --tail

PR reviews pick up ಆಗುತ್ತಿಲ್ಲ (polling mode) ​

  1. pr-review-check cron job triggerfish.yaml ನಲ್ಲಿ configure ಮಾಡಿದ್ದೀರಾ check ಮಾಡಿ
  2. Daemon running ಎಂದು verify ಮಾಡಿ: triggerfish status
  3. Tracking files ~/.triggerfish/workspace/<agent-id>/scratch/pr-tracking/ ನಲ್ಲಿ exist ಆಗುತ್ತಿವೆಯೇ check ಮಾಡಿ
  4. Manual test: gh pr view <number> --json reviews
  5. Triggerfish logs check ಮಾಡಿ: triggerfish logs --tail

gh CLI authenticate ಆಗಿಲ್ಲ ​

bash
gh auth status
# Authenticate ಮಾಡಿಲ್ಲದಿದ್ದರೆ:
gh auth login

Agent remote ಗೆ push ಮಾಡಲಾಗುತ್ತಿಲ್ಲ ​

Git remote ಮತ್ತು credentials verify ಮಾಡಿ:

bash
git remote -v
gh auth status

Authenticated GitHub account ಗೆ repository ಗೆ push access ಇದೆಯೇ ಖಾತರಿ ಮಾಡಿ.

Review ಸಮಯದಲ್ಲಿ tracking file ಸಿಗುತ್ತಿಲ್ಲ ​

Agent ~/.triggerfish/workspace/<agent-id>/scratch/pr-tracking/ ನಲ್ಲಿ tracking files ಹುಡುಕುತ್ತದೆ. File missing ಆಗಿದ್ದರೆ, PR Triggerfish ಹೊರಗಡೆ create ಮಾಡಿರಬಹುದು, ಅಥವಾ workspace clean ಮಾಡಲ್ಪಟ್ಟಿರಬಹುದು. Agent owner ಗೆ notify ಮಾಡಿ automated handling skip ಮಾಡಬೇಕು.