@@ -46,13 +46,145 @@ The Codeball sub-actions are:
4646### Example: "Dry-run" mode, labels all PRs with the Codeball Result
4747
4848<details >
49- <summary >codeball.yml</summary >
49+ <summary >examples/ codeball-dry-run .yml</summary >
5050
51- ## Heading
52- 1 . A numbered
53- 2 . list
54- * With some
55- * Sub bullets
51+ ```
52+ on: [pull_request]
53+
54+ permissions:
55+ contents: read
56+ issues: write
57+ pull-requests: write
58+
59+ jobs:
60+ codeball:
61+ runs-on: ubuntu-latest
62+ name: Codeball
63+ steps:
64+
65+ # Start a new Codeball review job
66+ # This step is asynchronous and will return a job id
67+ - name: Trigger Codeball
68+ id: codeball_baller
69+ uses: sturdy-dev/codeball-action/baller@v2
70+
71+
72+ # Wait for Codeball to return the status
73+ - name: Get Status
74+ id: codeball_status
75+ uses: sturdy-dev/codeball-action/status@v2
76+ with:
77+ codeball-job-id: ${{ steps.codeball_baller.outputs.codeball-job-id }}
78+
79+ # If Codeball approved the contribution, add a "codeball:approved" label
80+ - name: Label Approved
81+ uses: sturdy-dev/codeball-action/labeler@v2
82+ if: ${{ steps.codeball_status.outputs.approved == 'true' }}
83+ with:
84+ name: "codeball:approved"
85+ color: "86efac" # green
86+
87+ # If Codeball did not approve the contribution, add a "codeball:needs-review" label
88+ - name: Label Needs Review
89+ uses: sturdy-dev/codeball-action/labeler@v2
90+ if: ${{ steps.codeball_status.outputs.approved == 'false' }}
91+ with:
92+ name: "codeball:needs-review"
93+ color: "bfdbfe" # blue
94+
95+ ```
96+ </details >
97+
98+ ### Example: Approve only (no labels)
99+
100+ <details >
101+ <summary >examples/codeball-approve.yml</summary >
102+
103+ ```
104+ on: [pull_request]
105+
106+ permissions:
107+ contents: read
108+ issues: write
109+ pull-requests: write
110+
111+ jobs:
112+ codeball:
113+ runs-on: ubuntu-latest
114+ name: Codeball
115+ steps:
116+
117+ # Start a new Codeball review job
118+ # This step is asynchronous and will return a job id
119+ - name: Trigger Codeball
120+ id: codeball_baller
121+ uses: sturdy-dev/codeball-action/baller@v2
122+
123+
124+ # Wait for Codeball to return the status
125+ - name: Get Status
126+ id: codeball_status
127+ uses: sturdy-dev/codeball-action/status@v2
128+ with:
129+ codeball-job-id: ${{ steps.codeball_baller.outputs.codeball-job-id }}
130+
131+ # If Codeball approved the contribution, approve the PR
132+ - name: Approve PR
133+ uses: sturdy-dev/codeball-action/approver@v2
134+ if: ${{ steps.codeball_status.outputs.approved == 'true' }}
135+ with:
136+ message: "Codeball: LGTM! :+1:"
137+ ```
138+ </details >
139+
140+
141+ ### Example: Filter files (run only for PRs modifying a single service)
142+
143+ <details >
144+ <summary >examples/codeball-filter-files.yml</summary >
145+
146+ ```
147+ on:
148+ pull_request:
149+ # Run Codeball only if files under "/web/" has been modified (and no other files)
150+ # See: https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#example-including-and-excluding-paths
151+ paths:
152+ - '!**'
153+ - '/web/**'
154+
155+ permissions:
156+ contents: read
157+ issues: write
158+ pull-requests: write
159+
160+ jobs:
161+ codeball:
162+ runs-on: ubuntu-latest
163+ name: Codeball
164+
165+ steps:
166+
167+ # Start a new Codeball review job
168+ # This step is asynchronous and will return a job id
169+ - name: Trigger Codeball
170+ id: codeball_baller
171+ uses: sturdy-dev/codeball-action/baller@v2
172+
173+
174+ # Wait for Codeball to return the status
175+ - name: Get Status
176+ id: codeball_status
177+ uses: sturdy-dev/codeball-action/status@v2
178+ with:
179+ codeball-job-id: ${{ steps.codeball_baller.outputs.codeball-job-id }}
180+
181+ # If Codeball approved the contribution, approve the PR
182+ - name: Approve PR
183+ uses: sturdy-dev/codeball-action/approver@v2
184+ if: ${{ steps.codeball_status.outputs.approved == 'true' }}
185+ with:
186+ message: "Codeball: LGTM! :+1:"
187+ ```
56188</details >
57189
58190## Troubleshooting
0 commit comments