Add Forgejo-native hook support (dual-stack GitHub + Forgejo) #2

Merged
forgejo_admin merged 2 commits from 1-forgejo-native-hooks into main 2026-02-23 15:15:53 +00:00
Contributor

Summary

  • All hooks now detect platform (GitHub vs Forgejo) from git remote URL
  • check-issue.sh validates issues via Forgejo API for Forgejo repos
  • forgejo-helper.sh provides shared Forgejo API functions
  • review-pr.md updated with Forgejo API equivalents
  • CLAUDE.md updated with dual-platform SOP

Changed Files

  • hooks/forgejo-helper.sh (NEW) — shared Forgejo API library
  • hooks/check-issue.sh — dual-stack issue validation
  • hooks/block-main-commits.sh — platform-aware error messages
  • hooks/block-pr-merge.sh — intercepts Forgejo PR merges
  • hooks/remind-review-loop.sh — triggers on Forgejo PR creation
  • commands/review-pr.md — Forgejo API instructions
  • CLAUDE.md — dual-platform SOP

Test plan

  • Switch symlink to Forgejo version, verify hooks work on a Forgejo repo (basketball-api)
  • Verify hooks still work on a GitHub repo (pal-e-services)
  • Test check-issue.sh validates Forgejo issues via API
  • Test block-pr-merge.sh intercepts Forgejo merge commands

Closes #1

Review

  • Passed automated review-fix loop
  • User approved merge
## Summary - All hooks now detect platform (GitHub vs Forgejo) from git remote URL - `check-issue.sh` validates issues via Forgejo API for Forgejo repos - `forgejo-helper.sh` provides shared Forgejo API functions - `review-pr.md` updated with Forgejo API equivalents - `CLAUDE.md` updated with dual-platform SOP ## Changed Files - `hooks/forgejo-helper.sh` (NEW) — shared Forgejo API library - `hooks/check-issue.sh` — dual-stack issue validation - `hooks/block-main-commits.sh` — platform-aware error messages - `hooks/block-pr-merge.sh` — intercepts Forgejo PR merges - `hooks/remind-review-loop.sh` — triggers on Forgejo PR creation - `commands/review-pr.md` — Forgejo API instructions - `CLAUDE.md` — dual-platform SOP ## Test plan - [ ] Switch symlink to Forgejo version, verify hooks work on a Forgejo repo (basketball-api) - [ ] Verify hooks still work on a GitHub repo (pal-e-services) - [ ] Test check-issue.sh validates Forgejo issues via API - [ ] Test block-pr-merge.sh intercepts Forgejo merge commands Closes #1 ## Review - [ ] Passed automated review-fix loop - [ ] User approved merge
- check-issue.sh: detects platform from remote URL, validates issues
  via Forgejo API for Forgejo repos, gh CLI for GitHub repos
- block-main-commits.sh: updated error messages to be platform-aware
- block-pr-merge.sh: intercepts both gh pr merge and Forgejo API merges
- remind-review-loop.sh: triggers on both gh pr create and Forgejo PR creation
- forgejo-helper.sh: shared library for Forgejo API calls (issue validation,
  PR create/diff/comment/merge)
- review-pr.md: updated with Forgejo API equivalents for all gh commands
- CLAUDE.md: updated SOP to document both GitHub and Forgejo workflows

Credentials loaded from ~/secrets/pal-e-services/forgejo.env

Closes #1

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Fix forgejo_owner_repo() to handle SSH URLs (git@host:owner/repo.git)
- Fix is_forgejo_repo() to match on hostname instead of username
- Add --connect-timeout 5 --max-time 10 to all curl calls
- Fix block-pr-merge.sh to require POST method for Forgejo merge detection

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
forgejo_admin changed target branch from master to main 2026-02-23 15:15:48 +00:00
Sign in to join this conversation.
No description provided.