forked from lemonade-hq/complexity-analyzer
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathaction.yml
More file actions
81 lines (77 loc) · 2.07 KB
/
action.yml
File metadata and controls
81 lines (77 loc) · 2.07 KB
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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
name: 'PR Complexity Analyzer'
description: 'Analyzes GitHub pull request complexity using LLMs'
author: 'Complexity Analyzer Contributors'
branding:
icon: 'trending-up'
color: 'blue'
inputs:
pr-url:
description: 'GitHub PR URL (e.g., https://github.com/owner/repo/pull/123)'
required: false
default: ${{ github.event.pull_request.html_url }}
openai-api-key:
description: 'OpenAI API key for LLM analysis'
required: true
github-token:
description: 'GitHub token for API access (defaults to GITHUB_TOKEN)'
required: false
default: ${{ github.token }}
model:
description: 'OpenAI model name'
required: false
default: 'gpt-5.1'
format:
description: 'Output format (json or markdown)'
required: false
default: 'json'
output-file:
description: 'Path to write output file (optional)'
required: false
timeout:
description: 'Request timeout in seconds'
required: false
default: '120'
max-tokens:
description: 'Maximum tokens for diff excerpt'
required: false
default: '50000'
hunks-per-file:
description: 'Maximum hunks per file'
required: false
default: '2'
sleep-seconds:
description: 'Sleep between GitHub API calls'
required: false
default: '0.7'
outputs:
score:
description: 'Complexity score (1-10)'
explanation:
description: 'Explanation of the complexity score'
model:
description: 'Model used for analysis (e.g., gpt-4, gpt-5.1)'
output:
description: 'Full analysis result in JSON format'
runs:
using: 'docker'
image: 'Dockerfile'
args:
- 'analyze-pr'
- '--openai-api-key'
- '${{ inputs.openai-api-key }}'
- '--github-token'
- '${{ inputs.github-token }}'
- '--model'
- '${{ inputs.model }}'
- '--format'
- '${{ inputs.format }}'
- '--output-file'
- '${{ inputs.output-file }}'
- '--timeout'
- '${{ inputs.timeout }}'
- '--max-tokens'
- '${{ inputs.max-tokens }}'
- '--hunks-per-file'
- '${{ inputs.hunks-per-file }}'
- '--sleep-seconds'
- '${{ inputs.sleep-seconds }}'