Created
January 19, 2026 17:32
-
-
Save Makisuo/efb6c68cb8aefeb062f1c38f5e3f6ff2 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Weekly Changelog | |
| on: | |
| schedule: | |
| - cron: "0 9 * * 1" # Every Monday at 9:00 AM UTC | |
| workflow_dispatch: | |
| jobs: | |
| generate-changelog: | |
| runs-on: ubuntu-latest | |
| permissions: | |
| contents: write | |
| pull-requests: write | |
| id-token: write | |
| steps: | |
| - name: Checkout hazel-landing | |
| uses: actions/checkout@v4 | |
| - name: Clone hazel app repo | |
| run: | | |
| git clone --depth 100 https://github.com/hazelchat/hazel.git /tmp/hazel-app | |
| - name: Get last week's commits | |
| id: commits | |
| run: | | |
| cd /tmp/hazel-app | |
| COMMITS=$(git log --oneline --since="1 week ago" --no-merges --format="%h %ad %s" --date=short) | |
| echo "commits<<EOF" >> $GITHUB_OUTPUT | |
| echo "$COMMITS" >> $GITHUB_OUTPUT | |
| echo "EOF" >> $GITHUB_OUTPUT | |
| echo "date=$(date +%Y-%m-%d)" >> $GITHUB_OUTPUT | |
| - name: Generate changelog with Claude | |
| uses: anthropics/claude-code-action@v1 | |
| with: | |
| claude_code_oauth_token: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }} | |
| settings: '{"model": "claude-opus-4-5-20251101", "permissions": {"allow": ["Bash", "Read", "Write", "Edit", "Glob", "Grep"]}}' | |
| prompt: | | |
| Generate a customer-facing changelog for the Hazel app based on these commits from the past week: | |
| ${{ steps.commits.outputs.commits }} | |
| Follow these rules: | |
| 1. ONLY include user-facing changes (features, fixes, improvements users would notice) | |
| 2. EXCLUDE: dependency bumps, internal refactors, CI/CD changes, code cleanup, TypeScript fixes | |
| 3. Group related commits into single entries | |
| 4. Write descriptions in plain language customers understand | |
| IMPORTANT: Use the Write tool (not Bash) to create the changelog file. | |
| Create a new file at src/content/changelog/${{ steps.commits.outputs.date }}.md with this format: | |
| --- | |
| week: "[Month Day, Year]" | |
| date: [YYYY-MM-DD] | |
| title: "[Brief descriptive title]" | |
| summary: "[One sentence summary]" | |
| isMajor: false | |
| author: "Hazel Team" | |
| changes: | |
| - type: feature|fix|improvement|performance|security|breaking|deprecated | |
| title: "[Entry name]" | |
| description: "[User-friendly description]" | |
| --- | |
| [Brief paragraph about release highlights] | |
| If there are no user-facing changes, create the file with an empty changes array and note that in the summary. | |
| After creating the file, create a pull request with: | |
| - Branch: changelog/${{ steps.commits.outputs.date }} | |
| - Title: "Changelog: Week of ${{ steps.commits.outputs.date }}" | |
| - Body: Summary of the changes included | |
| claude_args: "--max-turns 25" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment