Update Changelog with Claude #149
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: Update Changelog with Claude | |
| on: | |
| schedule: | |
| # Run every day at 5 AM UTC | |
| - cron: '0 5 * * *' | |
| workflow_dispatch: # Allow manual trigger | |
| jobs: | |
| update-changelog: | |
| runs-on: ubuntu-latest | |
| if: github.repository == 'JetBrains/ideavim' | |
| permissions: | |
| contents: write | |
| pull-requests: write | |
| id-token: write | |
| issues: read | |
| actions: read | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| with: | |
| fetch-depth: 0 # Need full history to analyze commits and tags | |
| - name: Get last processed commit | |
| id: last_commit | |
| run: | | |
| # Get the commit SHA from the last successful workflow run | |
| LAST_COMMIT=$(gh run list \ | |
| --workflow=updateChangelogClaude.yml \ | |
| --status=success \ | |
| --limit=1 \ | |
| --json headSha \ | |
| --jq '.[0].headSha // ""') | |
| echo "sha=$LAST_COMMIT" >> $GITHUB_OUTPUT | |
| if [ -n "$LAST_COMMIT" ]; then | |
| echo "Last processed commit: $LAST_COMMIT" | |
| else | |
| echo "No previous successful run found, will analyze recent commits" | |
| fi | |
| env: | |
| GH_TOKEN: ${{ github.token }} | |
| - name: Run Claude Code to Update Changelog | |
| id: claude | |
| uses: anthropics/claude-code-action@v1 | |
| with: | |
| claude_code_oauth_token: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }} | |
| prompt: | | |
| ## Task: Update the CHANGES.md Changelog File | |
| You need to review the latest commits and maintain the changelog file (CHANGES.md) with meaningful changes. | |
| Use the changelog skill to load the detailed changelog maintenance instructions. | |
| **Important**: The last processed commit is: ${{ steps.last_commit.outputs.sha || 'not set - analyze commits from the last documented version in CHANGES.md' }} | |
| Use `git log ${{ steps.last_commit.outputs.sha }}..HEAD --oneline` to see commits since the last changelog update (if the commit SHA is available). | |
| If you find changes that need documenting, update CHANGES.md and create a pull request with: | |
| - Title: "Update changelog: <super short summary>" | |
| Example: "Update changelog: Add gn text object, fix visual mode issues" | |
| - Body: Brief summary of what was added | |
| # Allow Claude to use git, GitHub CLI, and web access for checking releases and tickets | |
| claude_args: '--allowed-tools "Skill,Read,Edit,Bash(git:*),Bash(gh:*),WebSearch,WebFetch(domain:plugins.jetbrains.com),WebFetch(domain:youtrack.jetbrains.com),WebFetch(domain:github.com)"' |