-
Notifications
You must be signed in to change notification settings - Fork 11
/
Copy pathaction.yaml
95 lines (89 loc) Β· 3.44 KB
/
action.yaml
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
87
88
89
90
91
92
93
94
# DeepSeek Code Review Action
# @author: hustcer
# @created: 2025/01/29 13:05:20
# REF:
# - https://docs.github.com/cn/actions/creating-actions/about-custom-actions
# - https://docs.github.com/cn/actions/creating-actions/metadata-syntax-for-github-actions
# - https://docs.github.com/en/actions/creating-actions/creating-a-composite-action
name: 'DeepSeek CR'
author: 'hustcer'
description: 'π Sharpen Your Code, Ship with Confidence β Elevate Your Workflow with DeepSeek Code Review π'
branding:
icon: 'eye'
color: 'purple'
inputs:
chat-token:
required: true
description: 'Your DeepSeek API token.'
max-length:
default: 0
required: false
description: 'The maximum length of the content for review, 0 means no limit.'
model:
required: false
default: 'deepseek-chat'
description: 'The DeepSeek model to choose for code review.'
temperature:
required: false
default: 1.0
description: 'The temperature of the model.'
base-url:
required: false
default: 'https://api.deepseek.com'
description: 'The base url of DeepSeek API.'
sys-prompt:
required: false
default: 'You are a professional code review assistant responsible for analyzing code changes in GitHub Pull Requests. Identify potential issues such as code style violations, logical errors, security vulnerabilities, and provide improvement suggestions. Clearly list the problems and recommendations in a concise manner.'
description: 'The system prompt for DeepSeek API.'
user-prompt:
required: false
default: 'Please review the following code changes'
description: 'The user prompt for DeepSeek API.'
include-patterns:
required: false
description: 'The comma separated file patterns to include in the code review.'
exclude-patterns:
required: false
default: 'pnpm-lock.yaml,package-lock.json,*.lock'
description: 'The comma separated file patterns to exclude in the code review.'
github-token:
required: false
default: '${{ github.token }}'
description: 'The GITHUB_TOKEN secret or personal access token to authenticate. Defaults to `github.token`.'
runs:
using: 'composite'
steps:
- name: Setup Nu
uses: hustcer/setup-nu@v3
with:
version: 0.102.0
- name: DeepSeek Code Review
shell: nu {0}
run: |
const NU_LIB_DIRS = [ ${{ github.action_path }}/nu ]
use review.nu *
let model = '${{ inputs.model }}'
let baseUrl = '${{ inputs.base-url }}'
let repo = '${{ github.repository }}'
let token = '${{ inputs.chat-token }}'
let ghToken = '${{ inputs.github-token }}'
let sysPrompt = '${{ inputs.sys-prompt }}'
let userPrompt = '${{ inputs.user-prompt }}'
let pr = '${{ github.event.pull_request.number }}'
let includePatterns = '${{ inputs.include-patterns }}'
let excludePatterns = '${{ inputs.exclude-patterns }}'
let maxLength = try { '${{ inputs.max-length }}' | into int } catch { 0 }
let temperature = try { '${{ inputs.temperature }}' | into float } catch { 1.0 }
(deepseek-review $token
--model $model
--repo $repo
--pr-number $pr
--gh-token $ghToken
--base-url $baseUrl
--max-length $maxLength
--sys-prompt $sysPrompt
--user-prompt $userPrompt
--temperature $temperature
--include $includePatterns
--exclude $excludePatterns
)