Skip to content

Commit 1952b19

Browse files
authored
fix(releases): improve commit categorization and ci security (#2992)
* fix(releases): improve commit categorization and CI security * fix(releases): remove redundant update check
1 parent fa03d4d commit 1952b19

File tree

2 files changed

+24
-11
lines changed

2 files changed

+24
-11
lines changed

.github/workflows/ci.yml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,10 +27,11 @@ jobs:
2727
steps:
2828
- name: Extract version from commit message
2929
id: extract
30+
env:
31+
COMMIT_MSG: ${{ github.event.head_commit.message }}
3032
run: |
31-
COMMIT_MSG="${{ github.event.head_commit.message }}"
3233
# Only tag versions on main branch
33-
if [ "${{ github.ref }}" = "refs/heads/main" ] && [[ "$COMMIT_MSG" =~ ^(v[0-9]+\.[0-9]+\.[0-9]+): ]]; then
34+
if [ "$GITHUB_REF" = "refs/heads/main" ] && [[ "$COMMIT_MSG" =~ ^(v[0-9]+\.[0-9]+\.[0-9]+): ]]; then
3435
VERSION="${BASH_REMATCH[1]}"
3536
echo "version=${VERSION}" >> $GITHUB_OUTPUT
3637
echo "is_release=true" >> $GITHUB_OUTPUT

scripts/create-single-release.ts

Lines changed: 21 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -126,7 +126,7 @@ async function fetchGitHubCommitDetails(
126126

127127
const githubUsername = commit.author?.login || commit.committer?.login || 'unknown'
128128

129-
let cleanMessage = commit.commit.message.split('\n')[0] // First line only
129+
let cleanMessage = commit.commit.message.split('\n')[0]
130130
if (prNumber) {
131131
cleanMessage = cleanMessage.replace(/\s*\(#\d+\)\s*$/, '')
132132
}
@@ -226,12 +226,23 @@ async function getCommitsBetweenVersions(
226226
function categorizeCommit(message: string): 'features' | 'fixes' | 'improvements' | 'other' {
227227
const msgLower = message.toLowerCase()
228228

229-
if (
230-
msgLower.includes('feat') ||
231-
msgLower.includes('add') ||
232-
msgLower.includes('implement') ||
233-
msgLower.includes('new ')
234-
) {
229+
if (/^feat(\(|:|!)/.test(msgLower)) {
230+
return 'features'
231+
}
232+
233+
if (/^fix(\(|:|!)/.test(msgLower)) {
234+
return 'fixes'
235+
}
236+
237+
if (/^(improvement|improve|perf|refactor)(\(|:|!)/.test(msgLower)) {
238+
return 'improvements'
239+
}
240+
241+
if (/^(chore|docs|style|test|ci|build)(\(|:|!)/.test(msgLower)) {
242+
return 'other'
243+
}
244+
245+
if (msgLower.includes('feat') || msgLower.includes('implement') || msgLower.includes('new ')) {
235246
return 'features'
236247
}
237248

@@ -242,9 +253,10 @@ function categorizeCommit(message: string): 'features' | 'fixes' | 'improvements
242253
if (
243254
msgLower.includes('improve') ||
244255
msgLower.includes('enhance') ||
245-
msgLower.includes('update') ||
246256
msgLower.includes('upgrade') ||
247-
msgLower.includes('optimization')
257+
msgLower.includes('optimization') ||
258+
msgLower.includes('add') ||
259+
msgLower.includes('update')
248260
) {
249261
return 'improvements'
250262
}

0 commit comments

Comments
 (0)