action.yml (3424B)
1 name: "Vet: Verify Everything" 2 description: "LLM-based code review that finds issues tests and linters miss" 3 author: "Imbue" 4 5 branding: 6 icon: "check-circle" 7 color: "blue" 8 9 inputs: 10 agentic: 11 description: "Enable agentic mode (Will use Claude Code as the default agent harness)" 12 required: false 13 default: "false" 14 model: 15 description: "LLM model to use" 16 required: false 17 default: "" 18 confidence-threshold: 19 description: "Minimum confidence for reported issues (0.0-1.0)" 20 required: false 21 default: "" 22 max-workers: 23 description: "Maximum number of parallel workers" 24 required: false 25 default: "" 26 max-spend: 27 description: "Maximum API spend in dollars" 28 required: false 29 default: "" 30 temperature: 31 description: "Model temperature (0.0-2.0)" 32 required: false 33 default: "" 34 enabled-issue-codes: 35 description: "Space-separated list of issue codes to enable" 36 required: false 37 default: "" 38 disabled-issue-codes: 39 description: "Space-separated list of issue codes to disable" 40 required: false 41 default: "" 42 config: 43 description: "Named config preset from .vet/configs.toml" 44 required: false 45 default: "" 46 extra-context: 47 description: "Space-separated paths to extra context files" 48 required: false 49 default: "" 50 fail-on-issues: 51 description: "Fail the workflow when vet finds issues" 52 required: false 53 default: "false" 54 build-from-source: 55 description: "Build and install vet from the checked-out source tree instead of PyPI" 56 required: false 57 default: "false" 58 59 runs: 60 using: "composite" 61 steps: 62 - name: Setup Python 63 uses: actions/setup-python@v5 64 with: 65 python-version: "3.11" 66 67 - name: Setup Node.js 68 if: inputs.agentic == 'true' 69 uses: actions/setup-node@v4 70 with: 71 node-version: "20" 72 73 - name: Install Claude Code 74 if: inputs.agentic == 'true' 75 shell: bash 76 run: npm install -g @anthropic-ai/claude-code 77 78 - name: Install vet 79 shell: bash 80 run: | 81 if [[ "${{ inputs.build-from-source }}" == "true" ]]; then 82 pip install . 83 else 84 pip install verify-everything 85 fi 86 87 - name: Run vet 88 if: github.event.pull_request.head.repo.full_name == github.repository 89 shell: bash 90 env: 91 GH_TOKEN: ${{ github.token }} 92 INPUT_AGENTIC: ${{ inputs.agentic }} 93 INPUT_MODEL: ${{ inputs.model }} 94 INPUT_CONFIDENCE_THRESHOLD: ${{ inputs.confidence-threshold }} 95 INPUT_MAX_WORKERS: ${{ inputs.max-workers }} 96 INPUT_MAX_SPEND: ${{ inputs.max-spend }} 97 INPUT_TEMPERATURE: ${{ inputs.temperature }} 98 INPUT_ENABLED_ISSUE_CODES: ${{ inputs.enabled-issue-codes }} 99 INPUT_DISABLED_ISSUE_CODES: ${{ inputs.disabled-issue-codes }} 100 INPUT_CONFIG: ${{ inputs.config }} 101 INPUT_EXTRA_CONTEXT: ${{ inputs.extra-context }} 102 INPUT_FAIL_ON_ISSUES: ${{ inputs.fail-on-issues }} 103 INPUT_BASE_REF: ${{ github.event.pull_request.base.ref }} 104 INPUT_HEAD_SHA: ${{ github.event.pull_request.head.sha }} 105 INPUT_PR_NUMBER: ${{ github.event.pull_request.number }} 106 INPUT_GOAL: | 107 ${{ github.event.pull_request.title }} 108 109 Additional context (not necessarily part of the goal): 110 ${{ github.event.pull_request.body }} 111 run: python "${{ github.action_path }}/action/run.py"