No description
  • Dockerfile 71.1%
  • Shell 28.9%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Ryan Voots 51990644b6
All checks were successful
Build Container / build (push) Successful in 57s
Build Container / checkoutputs (push) Successful in 1s
Build Container / runbuild (push) Successful in 0s
Build Container / pretend-build (push) Successful in 1s
fix review not posting when MCP enabled; release 1.4.1
Bumps the hodor submodule to 95d8224 (defers the MCP force-exit past reviewPr so --post publishes the review comment) and points actions/review + the dogfood workflow at 1.4.1.
2026-09-10 18:52:34 -04:00
.forgejo/workflows fix review not posting when MCP enabled; release 1.4.1 2026-09-10 18:52:34 -04:00
actions/review fix review not posting when MCP enabled; release 1.4.1 2026-09-10 18:52:34 -04:00
docs/research feat: integrate MCP servers (forgejo-mcp, mcp-searxng) via pi-mcp-adapter 2026-08-09 10:42:44 -04:00
profiles ci-aware review profile with MCP gating 2026-08-09 16:55:01 -04:00
src fix review not posting when MCP enabled; release 1.4.1 2026-09-10 18:52:34 -04:00
submodules Update forgejomcp 2026-09-09 17:58:18 -04:00
.gitignore consume Hodor as a submodule of the mirror's local branch; bump review action to 1.4.0 2026-09-10 17:21:54 -04:00
.gitmodules use https for the hodor submodule (CI runner lacks ssh host key) 2026-09-10 17:48:25 -04:00
AGENTS.md consume Hodor as a submodule of the mirror's local branch; bump review action to 1.4.0 2026-09-10 17:21:54 -04:00
Containerfile Revert "This is better" 2026-08-10 17:38:48 -04:00
entrypoint.sh setup some more debugging to see why posting isnt happening 2026-08-10 18:08:15 -04:00
README.md dont need that pr url by default 2026-08-08 13:53:52 -04:00
renovate.json Add renovate.json 2026-08-08 13:57:40 +00:00

Hodor Bot

Reusable Forgejo Actions workflow for AI-powered code reviews via Hodor, routed through a LiteLLM proxy.

Quick Start

Add this to your repository's .forgejo/workflows/hodor.yml:

name: Hodor Review

on:
  pull_request:
    types: [opened, synchronize, reopened]

jobs:
  hodor-review:
    uses: simcop2387/hodor-bot/.forgejo/workflows/review.yml@0.2.0
    with:
      pr-url: "https://forgejo.simcop2387.info/${{ github.repository }}/pulls/${{ github.event.pull_request.number }}"
    secrets: inherit

Prerequisites

Your repository needs these secrets configured:

Secret Description
HODOR_LLM_API_KEY API key for the LiteLLM proxy
HODOR_FORGEJO_TOKEN Token for the HodorBot user (with PR comment permissions)

Configure these in your repository settings at Settings > Actions > Secrets.

Available Profiles

Profile Description
default General bug-finding (default)
security Security-focused review
performance Performance-focused review

Configuration

Basic Usage

jobs:
  hodor-review:
    uses: simcop2387/hodor-bot/.forgejo/workflows/review.yml@0.2.0
    with:
      pr-url: "https://forgejo.simcop2387.info/${{ github.repository }}/pulls/${{ github.event.pull_request.number }}"
    secrets: inherit

With Profile Selection

jobs:
  hodor-review:
    uses: simcop2387/hodor-bot/.forgejo/workflows/review.yml@0.2.0
    with:
      profile: security
    secrets: inherit

With Additional Instructions

jobs:
  hodor-review:
    uses: simcop2387/hodor-bot/.forgejo/workflows/review.yml@0.2.0
    with:
      profile: default
      additional-instructions: "Focus on authentication changes"
    secrets: inherit

Full Configuration

jobs:
  hodor-review:
    uses: simcop2387/hodor-bot/.forgejo/workflows/review.yml@0.2.0
    with:
      pr-url: "https://forgejo.simcop2387.info/${{ github.repository }}/pulls/${{ github.event.pull_request.number }}"
      profile: security
      additional-instructions: "Focus on auth changes"
      model: openai/Qwen3.6-27B-single:medium
      reasoning-effort: high
      review-style: hybrid
      fail-on-priority: P1
      verbose: 'false'
    secrets: inherit

Input Reference

Input Default Description
profile default Review profile: default, security, performance
additional-instructions '' Extra instructions appended to the profile
model openai/Qwen3.6-27B-single:medium LLM model to use
reasoning-effort '' Reasoning effort: low, medium, high, xhigh
review-style hybrid Posting style: summary, inline, hybrid
fail-on-priority '' Fail pipeline on findings at or above: P0, P1, P2, P3
verbose false Enable verbose logging
pr-url '' Full PR URL (required, see Quick Start)

Versioning

The Hodor image is versioned with semver tags. Consuming repos should pin to a specific version:

uses: simcop2387/hodor-bot/.forgejo/workflows/review.yml@0.2.0

Available tags:

  • 0.2.0 — full semver
  • 0.2 — minor version
  • 0 — major version
  • latest — latest build (not recommended for production)
  • main — latest main branch build
  • run-<number> — specific build run

Creating Custom Profiles

Profiles are Markdown files stored in the profiles/ directory. To add a new profile:

  1. Create profiles/myprofile.md with your review instructions
  2. Rebuild the container image
  3. Push the new image tag
  4. Reference it in your workflow: profile: myprofile

Profile structure:

# Review Judgment Profile

## Mission
What this profile is looking for.

## Evidence Standard
What qualifies as a finding.

## Comment Quality
How findings should be written.

## Lenses
Specific areas to focus on.

See profiles/default.md, profiles/security.md, and profiles/performance.md for examples.

Architecture

  • Container Image: Custom Docker image based on upstream Hodor with LiteLLM support
  • Registry: forgejo.simcop2387.info/simcop2387/hodor
  • LLM Proxy: LiteLLM at litellm.ai.simcop2387.info
  • Forgejo Instance: forgejo.simcop2387.info

Building the Container

The container builds automatically on push to main or when a v* tag is pushed. Manual builds:

# Trigger via workflow dispatch
forgejo actions workflow-dispatch simcop2387/hodor-bot build-container

Release Tagging

Create a new semver tag via the release-tag workflow:

# Trigger via workflow dispatch
forgejo actions workflow-dispatch simcop2387/hodor-bot release-tag

Choose patch, minor, or major bump, or specify an explicit version.

Troubleshooting

No API key found

Set HODOR_LLM_API_KEY in your repository secrets.

Authentication failed

Set HODOR_FORGEJO_TOKEN in your repository secrets with PR comment permissions.

Profile not found

Check the profile name matches one of: default, security, performance.

Review is too slow

  • Avoid running on draft PRs
  • Skip docs-only changes in your workflow rules
  • Use --reasoning-effort low for routine changes