-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathaction.yml
More file actions
86 lines (83 loc) · 2.76 KB
/
action.yml
File metadata and controls
86 lines (83 loc) · 2.76 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
82
83
84
85
86
name: 'CodeForge'
description: 'AI-powered code review & sessions for GitHub and GitLab — multi-CLI, auto-knowledge, review posting'
author: 'freema'
branding:
icon: 'code'
color: 'blue'
inputs:
session_type:
description: 'Session type: pr_review, code_review, knowledge_update, custom'
required: false
default: 'pr_review'
prompt:
description: 'Custom prompt (required for session_type=custom, optional for reviews)'
required: false
cli:
description: 'AI CLI tool: claude-code or codex'
required: false
default: 'claude-code'
model:
description: 'AI model override (e.g., claude-sonnet-4-20250514)'
required: false
api_key:
description: 'AI provider API key (overrides ANTHROPIC_API_KEY / OPENAI_API_KEY)'
required: false
provider_token:
description: 'GitHub/GitLab token for PR operations (defaults to GITHUB_TOKEN)'
required: false
mcp_config:
description: 'MCP configuration JSON string or path to .mcp.json'
required: false
post_comments:
description: 'Post review results as PR/MR comments'
required: false
default: 'true'
output_format:
description: 'Output format: json, markdown, text'
required: false
default: 'json'
max_turns:
description: 'Maximum AI conversation turns'
required: false
allowed_tools:
description: 'Comma-separated tool allowlist for Claude Code'
required: false
pr_number:
description: 'PR number to review (auto-detected from event, use for issue_comment trigger)'
required: false
fail_on_request_changes:
description: 'Exit with code 1 when verdict is request_changes'
required: false
default: 'false'
outputs:
verdict:
description: 'Review verdict: approve, request_changes, or comment'
score:
description: 'Review score (1-10)'
issues_count:
description: 'Number of issues found'
review:
description: 'Full review result as JSON'
input_tokens:
description: 'Input tokens consumed'
output_tokens:
description: 'Output tokens consumed'
output:
description: 'Raw CLI output'
runs:
using: 'docker'
image: 'docker://ghcr.io/freema/codeforge-action:latest'
env:
INPUT_SESSION_TYPE: ${{ inputs.session_type }}
INPUT_PROMPT: ${{ inputs.prompt }}
INPUT_CLI: ${{ inputs.cli }}
INPUT_MODEL: ${{ inputs.model }}
INPUT_API_KEY: ${{ inputs.api_key }}
INPUT_PROVIDER_TOKEN: ${{ inputs.provider_token }}
INPUT_MCP_CONFIG: ${{ inputs.mcp_config }}
INPUT_POST_COMMENTS: ${{ inputs.post_comments }}
INPUT_OUTPUT_FORMAT: ${{ inputs.output_format }}
INPUT_MAX_TURNS: ${{ inputs.max_turns }}
INPUT_ALLOWED_TOOLS: ${{ inputs.allowed_tools }}
INPUT_PR_NUMBER: ${{ inputs.pr_number }}
INPUT_FAIL_ON_REQUEST_CHANGES: ${{ inputs.fail_on_request_changes }}