vet

Mirror of Vet, an AI code review tool
git clone git://git.laack.co/vet.git
Log | Files | Refs | README | LICENSE

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"