Skip to content

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

vulture-eye

A static web interface that configures an AI code reviewer and adds it to a GitHub repository in one click. Pick an AI provider, tune the review, and get a ready-to-commit GitHub Actions workflow that reviews every pull request.

No build step, no backend, no tracking — everything runs in the browser. Host it on GitHub Pages (or any static host).

What it produces

Two files for the target repo:

  • .github/workflows/ai-code-review.yml — runs on pull requests, calls the script.
  • scripts/ai_code_review.py — pulls the PR diff, filters files, asks the model for a JSON review, and posts (or updates) a single PR comment.

The reviewer authenticates to GitHub with the built-in GITHUB_TOKEN, so the only thing the user adds is their provider API key.

Supported providers

Google Gemini, OpenAI, Anthropic Claude. Each provider is one entry in js/providers.js — add a vendor there and it appears in the UI automatically.

One-click install flow

For a given owner/repo the UI builds GitHub deep links:

  1. API key secret → …/settings/secrets/actions/new (add <PROVIDER>_API_KEY). This is always manual — a secret can't be set from a link.
  2. Model variable (optional) → …/settings/variables/actions/new.
  3. Workflow file → GitHub's "create new file" editor, prefilled — click Commit.

Packaging modes

A Packaging selector offers three ways to ship the reviewer:

  • Composite action (default, genuinely one-click): the user's repo gets a ~20-line workflow that does uses: owner/repo@ref. That file is tiny, so its prefill deep-link fits under the URL limit — a real one-click add. The action itself (action.yml + a universal, all-providers ai_code_review.py) is published once to the action repo (the app generates both files, shown in their own editor tabs). Set the Action reference field to where you publish it.
  • Single file: the whole Python is embedded in the workflow YAML via a heredoc — one self-contained file, but too big for the prefill link (download).
  • Two files: a thin workflow plus a separate scripts/ai_code_review.py (the script is too big for the prefill link — download it).

The deep-link size limit

GitHub's "create new file" prefill carries the file content in the URL, and GitHub returns HTTP 414 / 500 past ~8 KB. Our script is ~10 KB, so:

File URL size One-click prefill?
Thin action workflow ~0.5 KB ✅ works
Secret / variable / action.yml small ✅ works
Python script (two-file mode) ~13 KB ❌ → Download instead
Inline single file ~17 KB ❌ → Download instead

The app detects this and swaps the one-click link for a Download button when the URL would be too long. Composite-action mode is the one that stays truly one-click for the end user.

Run locally

ES modules need HTTP (not file://):

python3 -m http.server 8000

Then open http://localhost:8000.

Deploy to GitHub Pages

Push these files to a repo, then in Settings → Pages set the source to the main branch, root folder. Done — no Actions build needed.

Project layout

index.html              App shell: header, editor workspace, footer
assets/                 Logo + favicons (generated from logo.jpg)
  logo.jpg  logo.png  logo-32.png  logo-24.png  favicon.png
src/
  css/                  Modular stylesheets, loaded in order
    tokens.css          Design tokens (GitHub dark palette)
    base.css            Reset + document defaults
    chrome.css          Header + footer
    editor.css          Editor workspace: sidebar, file tabs, gutter, syntax
    forms.css           Inputs and controls
    components.css      Buttons + toast
  js/                   ES modules
    providers.js        Provider catalog + default review prompt
    generate.js         Config → workflow / script / action files + deep links
    highlight.js        Tiny YAML + Python syntax highlighter
    app.js              State, editor, packaging modes, install links

Beyond the static MVP

Two routes to genuine one-click, both beyond the prefill approach:

  • Published composite action (stays static). This is the default packaging mode above: publish the reviewer once as a GitHub Action, and users add a tiny uses: workflow whose prefill link fits. Only the API-key secret stays manual.
  • GitHub App (needs a backend). OAuth login, then commit the files and set the secret via the GitHub REST API in one shot — the only route that also handles the secret and can list/pick repos.

About

AI-first open-source code reviewer builder.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages