Skip to content

Commit 47b99e1

Browse files
committed
Sync auto-copilot-code-cleanliness-review.yml from .github repo
1 parent 38332eb commit 47b99e1

File tree

1 file changed

+156
-1
lines changed

1 file changed

+156
-1
lines changed
Lines changed: 156 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,155 +1,310 @@
11
name: "Periodic Code Cleanliness Review"
2+
uto-amazonq-review.properties.json
23

4+
uto-amazonq-review.properties.json
35
on:
6+
uto-amazonq-review.properties.json
47
schedule:
8+
uto-amazonq-review.properties.json
59
# Run every 12 hours (at 00:00 and 12:00 UTC)
10+
uto-amazonq-review.properties.json
611
- cron: '0 0,12 * * *'
12+
uto-amazonq-review.properties.json
713
workflow_dispatch: # Allow manual trigger
14+
uto-amazonq-review.properties.json
815

16+
uto-amazonq-review.properties.json
917
permissions:
18+
uto-amazonq-review.properties.json
1019
contents: write
20+
uto-amazonq-review.properties.json
1121
pull-requests: write
22+
uto-amazonq-review.properties.json
1223
issues: write
24+
uto-amazonq-review.properties.json
1325

26+
uto-amazonq-review.properties.json
1427
jobs:
28+
uto-amazonq-review.properties.json
1529
code-cleanliness-review:
16-
runs-on: ubuntu-latest
30+
uto-amazonq-review.properties.json
31+
runs-on: self-hosted
32+
uto-amazonq-review.properties.json
1733
steps:
34+
uto-amazonq-review.properties.json
1835
- name: Checkout code
36+
uto-amazonq-review.properties.json
1937
uses: actions/checkout@main
38+
uto-amazonq-review.properties.json
2039
with:
40+
uto-amazonq-review.properties.json
2141
fetch-depth: 0 # Full history for better analysis
42+
uto-amazonq-review.properties.json
2243

44+
uto-amazonq-review.properties.json
2345
- name: Analyze Large Files
46+
uto-amazonq-review.properties.json
2447
id: analyze
48+
uto-amazonq-review.properties.json
2549
run: |
50+
uto-amazonq-review.properties.json
2651
echo "## Large Files Analysis" > /tmp/analysis.md
52+
uto-amazonq-review.properties.json
2753
echo "" >> /tmp/analysis.md
54+
uto-amazonq-review.properties.json
2855
echo "Files larger than 500 lines that may benefit from splitting:" >> /tmp/analysis.md
56+
uto-amazonq-review.properties.json
2957
echo "" >> /tmp/analysis.md
58+
uto-amazonq-review.properties.json
3059

60+
uto-amazonq-review.properties.json
3161
# Find files larger than 500 lines (excluding common large files)
62+
uto-amazonq-review.properties.json
3263
find . -type f \( -name "*.py" -o -name "*.js" -o -name "*.ts" -o -name "*.java" -o -name "*.go" -o -name "*.cs" -o -name "*.rb" \) \
64+
uto-amazonq-review.properties.json
3365
! -path "*/node_modules/*" \
66+
uto-amazonq-review.properties.json
3467
! -path "*/dist/*" \
68+
uto-amazonq-review.properties.json
3569
! -path "*/build/*" \
70+
uto-amazonq-review.properties.json
3671
! -path "*/.venv/*" \
72+
uto-amazonq-review.properties.json
3773
! -path "*/vendor/*" \
74+
uto-amazonq-review.properties.json
3875
-exec wc -l {} \; | \
76+
uto-amazonq-review.properties.json
3977
awk '$1 > 500 {print $1 " lines: " $2}' | \
78+
uto-amazonq-review.properties.json
4079
sort -rn >> /tmp/analysis.md || echo "No large files found" >> /tmp/analysis.md
80+
uto-amazonq-review.properties.json
4181

82+
uto-amazonq-review.properties.json
4283
echo "" >> /tmp/analysis.md
84+
uto-amazonq-review.properties.json
4385
echo "## Code Complexity Analysis" >> /tmp/analysis.md
86+
uto-amazonq-review.properties.json
4487
echo "" >> /tmp/analysis.md
88+
uto-amazonq-review.properties.json
4589
echo "Files with potential complexity issues:" >> /tmp/analysis.md
90+
uto-amazonq-review.properties.json
4691

92+
uto-amazonq-review.properties.json
4793
# Find files with many functions/classes (basic heuristic)
94+
uto-amazonq-review.properties.json
4895
for ext in py js ts java go cs rb; do
96+
uto-amazonq-review.properties.json
4997
if [ "$ext" = "py" ]; then
98+
uto-amazonq-review.properties.json
5099
pattern="^def |^class "
100+
uto-amazonq-review.properties.json
51101
elif [ "$ext" = "js" ] || [ "$ext" = "ts" ]; then
102+
uto-amazonq-review.properties.json
52103
pattern="^function |^class |const.*=.*=>|function.*{$"
104+
uto-amazonq-review.properties.json
53105
else
106+
uto-amazonq-review.properties.json
54107
pattern="^class |^def |^func "
108+
uto-amazonq-review.properties.json
55109
fi
110+
uto-amazonq-review.properties.json
56111

112+
uto-amazonq-review.properties.json
57113
find . -type f -name "*.$ext" \
114+
uto-amazonq-review.properties.json
58115
! -path "*/node_modules/*" \
116+
uto-amazonq-review.properties.json
59117
! -path "*/dist/*" \
118+
uto-amazonq-review.properties.json
60119
! -path "*/build/*" \
120+
uto-amazonq-review.properties.json
61121
! -path "*/.venv/*" \
122+
uto-amazonq-review.properties.json
62123
! -path "*/vendor/*" \
124+
uto-amazonq-review.properties.json
63125
-exec sh -c 'count=$(grep -c "$1" "$2" 2>/dev/null || echo 0); if [ "$count" -gt 20 ]; then echo "$count definitions in $2"; fi' _ "$pattern" {} \; \
126+
uto-amazonq-review.properties.json
64127
2>/dev/null || true
128+
uto-amazonq-review.properties.json
65129
done | sort -rn >> /tmp/analysis.md
130+
uto-amazonq-review.properties.json
66131

132+
uto-amazonq-review.properties.json
67133
cat /tmp/analysis.md
134+
uto-amazonq-review.properties.json
68135

136+
uto-amazonq-review.properties.json
69137
- name: GitHub Copilot Code Review
138+
uto-amazonq-review.properties.json
70139
uses: github/copilot-cli-action@main
140+
uto-amazonq-review.properties.json
71141
with:
142+
uto-amazonq-review.properties.json
72143
query: |
144+
uto-amazonq-review.properties.json
73145
Review the codebase for code cleanliness issues:
146+
uto-amazonq-review.properties.json
74147
1. Identify files that are too large (>500 lines) and suggest how to split them into smaller, focused modules
148+
uto-amazonq-review.properties.json
75149
2. Look for code duplication and suggest refactoring opportunities
150+
uto-amazonq-review.properties.json
76151
3. Check for consistent code style and formatting
152+
uto-amazonq-review.properties.json
77153
4. Identify complex functions that could be simplified
154+
uto-amazonq-review.properties.json
78155
5. Suggest improvements for code organization and structure
156+
uto-amazonq-review.properties.json
79157
6. Check for proper separation of concerns
158+
uto-amazonq-review.properties.json
80159

160+
uto-amazonq-review.properties.json
81161
Provide actionable recommendations with specific file names and line numbers.
162+
uto-amazonq-review.properties.json
82163
env:
164+
uto-amazonq-review.properties.json
83165
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
166+
uto-amazonq-review.properties.json
84167
continue-on-error: true
168+
uto-amazonq-review.properties.json
85169

170+
uto-amazonq-review.properties.json
86171
- name: Create Issue for Code Cleanliness Review
172+
uto-amazonq-review.properties.json
87173
uses: actions/github-script@main
174+
uto-amazonq-review.properties.json
88175
with:
176+
uto-amazonq-review.properties.json
89177
github-token: ${{ secrets.GITHUB_TOKEN }}
178+
uto-amazonq-review.properties.json
90179
script: |
180+
uto-amazonq-review.properties.json
91181
const fs = require('fs');
182+
uto-amazonq-review.properties.json
92183
const analysis = fs.readFileSync('/tmp/analysis.md', 'utf8');
184+
uto-amazonq-review.properties.json
93185

186+
uto-amazonq-review.properties.json
94187
const date = new Date().toISOString().split('T')[0];
188+
uto-amazonq-review.properties.json
95189
const title = `Code Cleanliness Review - ${date}`;
190+
uto-amazonq-review.properties.json
96191

192+
uto-amazonq-review.properties.json
97193
const body = `# Periodic Code Cleanliness Review
194+
uto-amazonq-review.properties.json
98195

196+
uto-amazonq-review.properties.json
99197
This is an automated review conducted every 12 hours to maintain code quality.
198+
uto-amazonq-review.properties.json
100199

200+
uto-amazonq-review.properties.json
101201
${analysis}
202+
uto-amazonq-review.properties.json
102203

204+
uto-amazonq-review.properties.json
103205
## Recommendations
206+
uto-amazonq-review.properties.json
104207

208+
uto-amazonq-review.properties.json
105209
Please review the analysis above and:
210+
uto-amazonq-review.properties.json
106211
1. Split large files (>500 lines) into smaller, focused modules
212+
uto-amazonq-review.properties.json
107213
2. Refactor complex functions into smaller, testable units
214+
uto-amazonq-review.properties.json
108215
3. Remove code duplication
216+
uto-amazonq-review.properties.json
109217
4. Ensure consistent code style
218+
uto-amazonq-review.properties.json
110219
5. Improve code organization and structure
220+
uto-amazonq-review.properties.json
111221

222+
uto-amazonq-review.properties.json
112223
## Next Steps
224+
uto-amazonq-review.properties.json
113225

226+
uto-amazonq-review.properties.json
114227
- Assign this issue to relevant team members
228+
uto-amazonq-review.properties.json
115229
- Create follow-up PRs to address findings
230+
uto-amazonq-review.properties.json
116231
- Document any architectural decisions
232+
uto-amazonq-review.properties.json
117233

234+
uto-amazonq-review.properties.json
118235
---
236+
uto-amazonq-review.properties.json
119237
*This issue was automatically generated by the Code Cleanliness Review workflow.*
238+
uto-amazonq-review.properties.json
120239
`;
240+
uto-amazonq-review.properties.json
121241
242+
uto-amazonq-review.properties.json
122243
// Check if similar issue exists (open, created in last 24 hours)
244+
uto-amazonq-review.properties.json
123245
const issues = await github.rest.issues.listForRepo({
246+
uto-amazonq-review.properties.json
124247
owner: context.repo.owner,
248+
uto-amazonq-review.properties.json
125249
repo: context.repo.repo,
250+
uto-amazonq-review.properties.json
126251
state: 'open',
252+
uto-amazonq-review.properties.json
127253
labels: ['code-cleanliness', 'automated'],
254+
uto-amazonq-review.properties.json
128255
per_page: 10
256+
uto-amazonq-review.properties.json
129257
});
258+
uto-amazonq-review.properties.json
130259
260+
uto-amazonq-review.properties.json
131261
const recentIssue = issues.data.find(issue => {
262+
uto-amazonq-review.properties.json
132263
const createdAt = new Date(issue.created_at);
264+
uto-amazonq-review.properties.json
133265
const hoursSinceCreation = (Date.now() - createdAt) / (1000 * 60 * 60);
266+
uto-amazonq-review.properties.json
134267
return hoursSinceCreation < 24;
268+
uto-amazonq-review.properties.json
135269
});
270+
uto-amazonq-review.properties.json
136271
272+
uto-amazonq-review.properties.json
137273
if (recentIssue) {
274+
uto-amazonq-review.properties.json
138275
console.log(`Recent issue found: #${recentIssue.number}, skipping creation`);
276+
uto-amazonq-review.properties.json
139277
// Update existing issue with new analysis
278+
uto-amazonq-review.properties.json
140279
await github.rest.issues.createComment({
280+
uto-amazonq-review.properties.json
141281
owner: context.repo.owner,
282+
uto-amazonq-review.properties.json
142283
repo: context.repo.repo,
284+
uto-amazonq-review.properties.json
143285
issue_number: recentIssue.number,
286+
uto-amazonq-review.properties.json
144287
body: `## Updated Analysis (${date})\n\n${analysis}`
288+
uto-amazonq-review.properties.json
145289
});
290+
uto-amazonq-review.properties.json
146291
} else {
292+
uto-amazonq-review.properties.json
147293
// Create new issue
294+
uto-amazonq-review.properties.json
148295
await github.rest.issues.create({
296+
uto-amazonq-review.properties.json
149297
owner: context.repo.owner,
298+
uto-amazonq-review.properties.json
150299
repo: context.repo.repo,
300+
uto-amazonq-review.properties.json
151301
title: title,
302+
uto-amazonq-review.properties.json
152303
body: body,
304+
uto-amazonq-review.properties.json
153305
labels: ['code-cleanliness', 'automated', 'needs-review']
306+
uto-amazonq-review.properties.json
154307
});
308+
uto-amazonq-review.properties.json
155309
}
310+
uto-amazonq-review.properties.json

0 commit comments

Comments
 (0)