Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 36e89dc

Browse files
authored
Merge branch 'main' into feat/207-vscode-preinstall-extensions
2 parents d84c8a7 + b206a68 commit 36e89dc

File tree

44 files changed

+3723
-35
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

44 files changed

+3723
-35
lines changed

.github/workflows/release.yml

Lines changed: 112 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,112 @@
1+
name: Create Release
2+
3+
on:
4+
push:
5+
tags:
6+
- "release/*/*/v*.*.*"
7+
8+
jobs:
9+
create-release:
10+
runs-on: ubuntu-latest
11+
permissions:
12+
contents: write
13+
pull-requests: read
14+
15+
steps:
16+
- name: Checkout code
17+
uses: actions/checkout@v4
18+
with:
19+
fetch-depth: 0
20+
persist-credentials: false
21+
22+
- name: Extract tag information
23+
id: tag_info
24+
run: |
25+
TAG=${GITHUB_REF#refs/tags/}
26+
echo "tag=$TAG" >> $GITHUB_OUTPUT
27+
28+
IFS='/' read -ra PARTS <<< "$TAG"
29+
NAMESPACE="${PARTS[1]}"
30+
MODULE="${PARTS[2]}"
31+
VERSION="${PARTS[3]}"
32+
33+
echo "namespace=$NAMESPACE" >> $GITHUB_OUTPUT
34+
echo "module=$MODULE" >> $GITHUB_OUTPUT
35+
echo "version=$VERSION" >> $GITHUB_OUTPUT
36+
echo "module_path=registry/$NAMESPACE/modules/$MODULE" >> $GITHUB_OUTPUT
37+
38+
RELEASE_TITLE="$NAMESPACE/$MODULE $VERSION"
39+
echo "release_title=$RELEASE_TITLE" >> $GITHUB_OUTPUT
40+
41+
- name: Find previous tag
42+
id: prev_tag
43+
env:
44+
NAMESPACE: ${{ steps.tag_info.outputs.namespace }}
45+
MODULE: ${{ steps.tag_info.outputs.module }}
46+
CURRENT_TAG: ${{ steps.tag_info.outputs.tag }}
47+
run: |
48+
PREV_TAG=$(git tag -l "release/$NAMESPACE/$MODULE/v*" | sort -V | grep -B1 "$CURRENT_TAG" | head -1)
49+
50+
if [ -z "$PREV_TAG" ] || [ "$PREV_TAG" = "$CURRENT_TAG" ]; then
51+
echo "No previous tag found, using initial commit"
52+
PREV_TAG=$(git rev-list --max-parents=0 HEAD)
53+
fi
54+
55+
echo "prev_tag=$PREV_TAG" >> $GITHUB_OUTPUT
56+
echo "Previous tag: $PREV_TAG"
57+
58+
- name: Generate changelog
59+
id: changelog
60+
env:
61+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
62+
MODULE_PATH: ${{ steps.tag_info.outputs.module_path }}
63+
PREV_TAG: ${{ steps.prev_tag.outputs.prev_tag }}
64+
CURRENT_TAG: ${{ steps.tag_info.outputs.tag }}
65+
run: |
66+
echo "Generating changelog for $MODULE_PATH between $PREV_TAG and $CURRENT_TAG"
67+
68+
COMMITS=$(git log --oneline --no-merges "$PREV_TAG..$CURRENT_TAG" -- "$MODULE_PATH")
69+
70+
if [ -z "$COMMITS" ]; then
71+
echo "No commits found for this module"
72+
echo "changelog=No changes found for this module." >> $GITHUB_OUTPUT
73+
exit 0
74+
fi
75+
76+
FULL_CHANGELOG=$(gh api repos/:owner/:repo/releases/generate-notes \
77+
--field tag_name="$CURRENT_TAG" \
78+
--field previous_tag_name="$PREV_TAG" \
79+
--jq '.body')
80+
81+
MODULE_COMMIT_SHAS=$(git log --format="%H" --no-merges "$PREV_TAG..$CURRENT_TAG" -- "$MODULE_PATH")
82+
83+
FILTERED_CHANGELOG="## What's Changed\n\n"
84+
85+
for sha in $MODULE_COMMIT_SHAS; do
86+
SHORT_SHA=${sha:0:7}
87+
88+
COMMIT_LINES=$(echo "$FULL_CHANGELOG" | grep -E "$SHORT_SHA|$(git log --format='%s' -n 1 $sha)" || true)
89+
90+
if [ -n "$COMMIT_LINES" ]; then
91+
FILTERED_CHANGELOG="${FILTERED_CHANGELOG}${COMMIT_LINES}\n"
92+
else
93+
COMMIT_MSG=$(git log --format="%s" -n 1 $sha)
94+
AUTHOR=$(gh api repos/:owner/:repo/commits/$sha --jq '.author.login // .commit.author.name')
95+
FILTERED_CHANGELOG="${FILTERED_CHANGELOG}* $COMMIT_MSG by @$AUTHOR\n"
96+
fi
97+
done
98+
99+
echo "changelog<<EOF" >> $GITHUB_OUTPUT
100+
echo -e "$FILTERED_CHANGELOG" >> $GITHUB_OUTPUT
101+
echo "EOF" >> $GITHUB_OUTPUT
102+
103+
- name: Create Release
104+
env:
105+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
106+
TAG_NAME: ${{ steps.tag_info.outputs.tag }}
107+
RELEASE_TITLE: ${{ steps.tag_info.outputs.release_title }}
108+
CHANGELOG: ${{ steps.changelog.outputs.changelog }}
109+
run: |
110+
gh release create "$TAG_NAME" \
111+
--title "$RELEASE_TITLE" \
112+
--notes "$CHANGELOG"

.icons/auggie.svg

Lines changed: 8 additions & 0 deletions
Loading

.icons/openai.svg

Lines changed: 15 additions & 0 deletions
Loading

0 commit comments

Comments
 (0)