mirror of
https://github.com/zhom/donutbrowser.git
synced 2026-04-23 04:16:29 +02:00
8c338515b7
Bumps the github-actions group with 8 updates: | Package | From | To | | --- | --- | --- | | [actions/checkout](https://github.com/actions/checkout) | `4.3.1` | `6.0.2` | | [google/osv-scanner-action/.github/workflows/osv-scanner-reusable-pr.yml](https://github.com/google/osv-scanner-action) | `2.3.3` | `2.3.5` | | [dependabot/fetch-metadata](https://github.com/dependabot/fetch-metadata) | `2.5.0` | `3.0.0` | | [docker/setup-buildx-action](https://github.com/docker/setup-buildx-action) | `3.12.0` | `4.0.0` | | [docker/login-action](https://github.com/docker/login-action) | `3.7.0` | `4.0.0` | | [docker/build-push-action](https://github.com/docker/build-push-action) | `6.19.2` | `7.0.0` | | [anomalyco/opencode](https://github.com/anomalyco/opencode) | `1.2.27` | `1.3.3` | | [google/osv-scanner-action/.github/workflows/osv-scanner-reusable.yml](https://github.com/google/osv-scanner-action) | `2.3.3` | `2.3.5` | Updates `actions/checkout` from 4.3.1 to 6.0.2 - [Release notes](https://github.com/actions/checkout/releases) - [Commits](https://github.com/actions/checkout/compare/v4.3.1...v6.0.2) Updates `google/osv-scanner-action/.github/workflows/osv-scanner-reusable-pr.yml` from 2.3.3 to 2.3.5 - [Release notes](https://github.com/google/osv-scanner-action/releases) - [Commits](https://github.com/google/osv-scanner-action/compare/c5996e0193a3df57d695c1b8a1dec2a4c62e8730...c51854704019a247608d928f370c98740469d4b5) Updates `dependabot/fetch-metadata` from 2.5.0 to 3.0.0 - [Release notes](https://github.com/dependabot/fetch-metadata/releases) - [Commits](https://github.com/dependabot/fetch-metadata/compare/21025c705c08248db411dc16f3619e6b5f9ea21a...ffa630c65fa7e0ecfa0625b5ceda64399aea1b36) Updates `docker/setup-buildx-action` from 3.12.0 to 4.0.0 - [Release notes](https://github.com/docker/setup-buildx-action/releases) - [Commits](https://github.com/docker/setup-buildx-action/compare/8d2750c68a42422c14e847fe6c8ac0403b4cbd6f...4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd) Updates `docker/login-action` from 3.7.0 to 4.0.0 - [Release notes](https://github.com/docker/login-action/releases) - [Commits](https://github.com/docker/login-action/compare/c94ce9fb468520275223c153574b00df6fe4bcc9...b45d80f862d83dbcd57f89517bcf500b2ab88fb2) Updates `docker/build-push-action` from 6.19.2 to 7.0.0 - [Release notes](https://github.com/docker/build-push-action/releases) - [Commits](https://github.com/docker/build-push-action/compare/10e90e3645eae34f1e60eeb005ba3a3d33f178e8...d08e5c354a6adb9ed34480a06d141179aa583294) Updates `anomalyco/opencode` from 1.2.27 to 1.3.3 - [Release notes](https://github.com/anomalyco/opencode/releases) - [Commits](https://github.com/anomalyco/opencode/compare/4ee426ba549131c4903a71dfb6259200467aca81...54443bfb7e090ec3130dc972e689a3e5cc55a7f9) Updates `google/osv-scanner-action/.github/workflows/osv-scanner-reusable.yml` from 2.3.3 to 2.3.5 - [Release notes](https://github.com/google/osv-scanner-action/releases) - [Commits](https://github.com/google/osv-scanner-action/compare/c5996e0193a3df57d695c1b8a1dec2a4c62e8730...c51854704019a247608d928f370c98740469d4b5) --- updated-dependencies: - dependency-name: actions/checkout dependency-version: 6.0.2 dependency-type: direct:production update-type: version-update:semver-major dependency-group: github-actions - dependency-name: google/osv-scanner-action/.github/workflows/osv-scanner-reusable-pr.yml dependency-version: 2.3.5 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: github-actions - dependency-name: dependabot/fetch-metadata dependency-version: 3.0.0 dependency-type: direct:production update-type: version-update:semver-major dependency-group: github-actions - dependency-name: docker/setup-buildx-action dependency-version: 4.0.0 dependency-type: direct:production update-type: version-update:semver-major dependency-group: github-actions - dependency-name: docker/login-action dependency-version: 4.0.0 dependency-type: direct:production update-type: version-update:semver-major dependency-group: github-actions - dependency-name: docker/build-push-action dependency-version: 7.0.0 dependency-type: direct:production update-type: version-update:semver-major dependency-group: github-actions - dependency-name: anomalyco/opencode dependency-version: 1.3.3 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: github-actions - dependency-name: google/osv-scanner-action/.github/workflows/osv-scanner-reusable.yml dependency-version: 2.3.5 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: github-actions ... Signed-off-by: dependabot[bot] <support@github.com>
119 lines
4.3 KiB
YAML
119 lines
4.3 KiB
YAML
name: Generate Release Notes
|
|
|
|
on:
|
|
workflow_run:
|
|
workflows: ["Release"]
|
|
types:
|
|
- completed
|
|
|
|
permissions:
|
|
contents: write
|
|
models: read
|
|
|
|
jobs:
|
|
generate-release-notes:
|
|
runs-on: ubuntu-latest
|
|
if: github.repository == 'zhom/donutbrowser' && github.event.workflow_run.conclusion == 'success' && startsWith(github.event.workflow_run.head_branch, 'v')
|
|
|
|
steps:
|
|
- name: Checkout repository
|
|
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd #v6.0.2
|
|
with:
|
|
fetch-depth: 0
|
|
|
|
- name: Get release info
|
|
id: get-release
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
TAG_NAME: ${{ github.event.workflow_run.head_branch }}
|
|
run: |
|
|
echo "tag-name=$TAG_NAME" >> $GITHUB_OUTPUT
|
|
|
|
# Get release info by tag
|
|
RELEASE_INFO=$(gh api /repos/${{ github.repository }}/releases/tags/$TAG_NAME)
|
|
RELEASE_ID=$(echo "$RELEASE_INFO" | jq -r '.id')
|
|
IS_PRERELEASE=$(echo "$RELEASE_INFO" | jq -r '.prerelease')
|
|
|
|
echo "release-id=$RELEASE_ID" >> $GITHUB_OUTPUT
|
|
echo "is-prerelease=$IS_PRERELEASE" >> $GITHUB_OUTPUT
|
|
|
|
if [ "$IS_PRERELEASE" = "true" ]; then
|
|
echo "Skipping release notes generation for prerelease"
|
|
fi
|
|
|
|
- name: Get previous release tag
|
|
id: get-previous-tag
|
|
if: steps.get-release.outputs.is-prerelease == 'false'
|
|
env:
|
|
CURRENT_TAG: ${{ steps.get-release.outputs.tag-name }}
|
|
run: |
|
|
PREVIOUS_TAG=$(git tag --sort=-version:refname | grep -E '^v[0-9]+\.[0-9]+\.[0-9]+$' | grep -v "$CURRENT_TAG" | head -n 1)
|
|
|
|
if [ -z "$PREVIOUS_TAG" ]; then
|
|
echo "No previous release found, using initial commit"
|
|
PREVIOUS_TAG=$(git rev-list --max-parents=0 HEAD)
|
|
fi
|
|
|
|
echo "current-tag=$CURRENT_TAG" >> $GITHUB_OUTPUT
|
|
echo "previous-tag=$PREVIOUS_TAG" >> $GITHUB_OUTPUT
|
|
echo "Previous release: $PREVIOUS_TAG"
|
|
echo "Current release: $CURRENT_TAG"
|
|
|
|
- name: Get commit messages between releases
|
|
id: get-commits
|
|
if: steps.get-release.outputs.is-prerelease == 'false'
|
|
env:
|
|
PREVIOUS_TAG: ${{ steps.get-previous-tag.outputs.previous-tag }}
|
|
CURRENT_TAG: ${{ steps.get-previous-tag.outputs.current-tag }}
|
|
run: |
|
|
# Get commit log with detailed format
|
|
COMMIT_LOG=$(git log --pretty=format:"- %s (%h by %an)" "$PREVIOUS_TAG".."$CURRENT_TAG" --no-merges)
|
|
|
|
# Get changed files summary
|
|
CHANGED_FILES=$(git diff --name-status "$PREVIOUS_TAG".."$CURRENT_TAG" | head -20)
|
|
|
|
# Save to files for AI processing
|
|
echo "$COMMIT_LOG" > commits.txt
|
|
echo "$CHANGED_FILES" > changes.txt
|
|
|
|
echo "commits-file=commits.txt" >> $GITHUB_OUTPUT
|
|
echo "changes-file=changes.txt" >> $GITHUB_OUTPUT
|
|
|
|
- name: Generate release notes with AI
|
|
id: generate-notes
|
|
if: steps.get-release.outputs.is-prerelease == 'false'
|
|
uses: actions/ai-inference@e09e65981758de8b2fdab13c2bfb7c7d5493b0b6 # v2.0.7
|
|
with:
|
|
prompt-file: .github/prompts/release-notes.prompt.yml
|
|
input: |
|
|
version: ${{ steps.get-previous-tag.outputs.current-tag }}
|
|
file_input: |
|
|
commits: ./commits.txt
|
|
max-tokens: 4096
|
|
|
|
- name: Update release with generated notes
|
|
if: steps.get-release.outputs.is-prerelease == 'false'
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
RESPONSE_FILE: ${{ steps.generate-notes.outputs.response-file }}
|
|
RESPONSE_OUTPUT: ${{ steps.generate-notes.outputs.response }}
|
|
RELEASE_ID: ${{ steps.get-release.outputs.release-id }}
|
|
run: |
|
|
# Prefer reading from the response file to avoid output truncation
|
|
if [ -n "$RESPONSE_FILE" ] && [ -f "$RESPONSE_FILE" ]; then
|
|
RELEASE_NOTES=$(cat "$RESPONSE_FILE")
|
|
else
|
|
RELEASE_NOTES="$RESPONSE_OUTPUT"
|
|
fi
|
|
|
|
# Update the release with the generated notes
|
|
gh api --method PATCH /repos/${{ github.repository }}/releases/"$RELEASE_ID" \
|
|
--field body="$RELEASE_NOTES"
|
|
|
|
echo "✅ Release notes updated successfully!"
|
|
|
|
- name: Cleanup
|
|
if: always()
|
|
run: |
|
|
rm -f commits.txt changes.txt
|