1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
name: RepoPilot
description: "Run RepoPilot static analysis on your repository"
author: "MykytaStel"
branding:
icon: shield
color: blue
inputs:
command:
description: "Command to run: scan | review | compare"
required: false
default: "scan"
format:
description: "Output format: console | json | markdown | sarif"
required: false
default: "sarif"
args:
description: "Extra CLI arguments passed verbatim to repopilot"
required: false
default: ""
version:
description: "npm version tag to install (e.g. latest, 0.7.0)"
required: false
default: "latest"
upload-sarif:
description: "Automatically upload SARIF output to GitHub Code Scanning"
required: false
default: "true"
outputs:
sarif-file:
description: "Path to the generated SARIF file (only set when format is sarif)"
value: ${{ steps.run.outputs.sarif_file }}
runs:
using: composite
steps:
- name: Install repopilot
shell: bash
run: npm install -g repopilot@${{ inputs.version }}
- name: Run repopilot
id: run
shell: bash
run: |
COMMAND="${{ inputs.command }}"
ARGS="${{ inputs.args }}"
if [[ "$COMMAND" == "scan" && -z "$ARGS" ]]; then
ARGS="."
fi
OUTFILE="repopilot-results.sarif"
if [[ "${{ inputs.format }}" == "sarif" ]]; then
repopilot "$COMMAND" $ARGS --format sarif --output "$OUTFILE"
echo "sarif_file=$OUTFILE" >> $GITHUB_OUTPUT
else
repopilot "$COMMAND" $ARGS --format ${{ inputs.format }}
fi
- name: Upload SARIF to GitHub Code Scanning
if: inputs.upload-sarif == 'true' && inputs.format == 'sarif'
uses: github/codeql-action/upload-sarif@v3
with:
sarif_file: ${{ steps.run.outputs.sarif_file }}