Files
hack/tools/scripts/llm-key-hunter/results/_cache/content/akii180499_demo-vampire.json
T

1 line
5.3 KiB
JSON

{"repo": "akii180499/demo-vampire", "files": {".github/workflows/mulesoft-code-review.yml": {"4ae50830a745986a89b0bf4eb923c7009450b841": {"t": 1785747025.6645038, "n": 4271, "h": "ab851c0f6676ef5f", "c": "# ─────────────────────────────────────────────────────────────────────────────\n# Buddy Reviewer — AI-assisted MuleSoft PR Code Review\n#\n# Drop this file into your MuleSoft project at:\n# .github/workflows/buddy-reviewer.yml\n#\n# Required secrets (Settings → Secrets → Actions):\n# BUDDY_GITHUB_TOKEN Personal Access Token with repo + pull_requests scope.\n# Must NOT be GITHUB_TOKEN — that token cannot post\n# review comments on PRs from forks or trigger re-runs.\n#\n# At least ONE LLM key:\n# GEMINI_API_KEY Google AI Studio key (recommended — cheapest)\n# OPENAI_API_KEY OpenAI key (GPT-4o)\n# DEEPSEEK_API_KEY DeepSeek key (cheapest, good quality)\n#\n# Optional secrets / variables (Settings → Variables → Actions):\n# LLM_ANALYSIS_MODEL Override the analysis model e.g. gemini-2.5-pro\n# LLM_FIX_MODEL Override the fix suggestion model\n# ─────────────────────────────────────────────────────────────────────────────\n\nname: Buddy Reviewer\n\non:\n pull_request:\n types: [opened, synchronize, reopened]\n # Scope to file types Buddy Reviewer understands.\n # Remove this filter if you want it to run on every PR.\n paths:\n - \"**.xml\"\n - \"**.dwl\"\n - \"**.dw\"\n - \"**.yaml\"\n - \"**.yml\"\n - \"**.properties\"\n - \"pom.xml\"\n\n # Allow manual re-runs from the Actions tab (useful after updating secrets)\n workflow_dispatch:\n\njobs:\n buddy-review:\n name: AI Code Review\n runs-on: ubuntu-latest\n\n # Don't block the PR if the review job fails — it's advisory, not a gate.\n # Change to false if you want CRITICAL issues to block merge.\n continue-on-error: true\n\n permissions:\n contents: read # checkout the reviewer repo\n pull-requests: write # post comments (only works with PAT, not GITHUB_TOKEN)\n\n steps:\n # ── 1. Check out the Buddy Reviewer source ────────────────────────────\n - name: Check out Buddy Reviewer\n uses: actions/checkout@v4\n with:\n repository: akii180499/mulesoft-buddy-reviewer # ← change to your reviewer repo\n ref: main\n token: ${{ secrets.PAT_TOKEN }}\n path: mulesoft-buddy-reviewer\n\n # ── 2. Set up Python ──────────────────────────────────────────────────\n - name: Set up Python\n uses: actions/setup-python@v5\n with:\n python-version: \"3.11\"\n\n # ── 3. Install dependencies ───────────────────────────────────────────\n - name: Cache pip dependencies\n uses: actions/cache@v4\n with:\n path: ~/.cache/pip\n key: ${{ runner.os }}-pip-${{ hashFiles('mulesoft-buddy-reviewer/requirements.txt') }}\n restore-keys: |\n ${{ runner.os }}-pip-\n\n - name: Install dependencies\n run: pip install -r mulesoft-buddy-reviewer/requirements.txt\n\n # ── 4. Run the review ─────────────────────────────────────────────────\n - name: Run Buddy Reviewer\n working-directory: mulesoft-buddy-reviewer\n env:\n # Repo being reviewed — GitHub injects this automatically\n GITHUB_REPOSITORY: akii180499/mulesoft-buddy-reviewer\n GITHUB_TOKEN: ${{ secrets.PAT_TOKEN }}\n PR_NUMBER: ${{ github.event.pull_request.number }}\n\n # LLM keys — the reviewer auto-detects whichever is set.\n # Set all three if you want fallback behaviour.\n GEMINI_API_KEY: ${{ secrets.GEMINI_API_KEY }}\n OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}\n DEEPSEEK_API_KEY: ${{ secrets.DEEPSEEK_API_KEY }}\n\n # Optional model overrides (leave blank to use provider defaults)\n #LLM_ANALYSIS_MODEL: ${{ vars.LLM_ANALYSIS_MODEL }}\n #LLM_FIX_MODEL: ${{ vars.LLM_FIX_MODEL }}\n\n run: python main.py\n\n # ── 5. Surface exit code ──────────────────────────────────────────────\n # Buddy Reviewer exits with code 1 when CRITICAL issues are found.\n # Uncomment the block below to make CRITICAL issues block the PR merge.\n #\n # - name: Fail on critical issues\n # if: failure()\n # run: |\n # echo \"::error::Buddy Reviewer found CRITICAL issues. Merge is blocked.\"\n # exit 1\n"}}}}