Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
47 commits
Select commit Hold shift + click to select a range
1e4ff31
Add auto-update changelog workflow using docker image
marians Feb 4, 2026
1765b05
Fix model name
marians Feb 4, 2026
b9545b5
Add permission mode to changelog update workflow
marians Feb 4, 2026
e8a3a95
Change permission mode to allow skipping permissions
marians Feb 4, 2026
9073fe9
Increase max budget for changelog update to $0.2
marians Feb 4, 2026
1aa727f
Add allowed-tools parameter to changelog workflow
marians Feb 4, 2026
fd73bbf
Add GITHUB_TOKEN to changelog update workflow
marians Feb 4, 2026
a26d4c2
Give more info in prompt
marians Feb 4, 2026
b4c616e
Specify prompt
marians Feb 4, 2026
c752016
Merge b4c616e655a1ffc06797eb73d41c0f7ca56de37d into 0f0efd8696e20fc0d…
marians Feb 4, 2026
69e5641
Update CHANGELOG.md
invalid-email-address Feb 4, 2026
5f8dbd7
Revise prompt
marians Feb 4, 2026
734fdc6
Update auto-update-changelog.yaml
marians Feb 7, 2026
c983a8b
Escape variables
marians Feb 7, 2026
a8ae42e
Simplify prompt
marians Feb 7, 2026
c2819a8
Revert changelog change
marians Feb 7, 2026
09b99fe
Try stream-json output
marians Feb 7, 2026
ad4d445
Allow tool use
marians Feb 7, 2026
416da43
Try different format for args and prompt
marians Feb 7, 2026
7f9cbb7
Specify prompt via env variable
marians Feb 7, 2026
3c76b90
Pass PR details as JSON
marians Feb 7, 2026
86d7709
Change allowedTools
marians Feb 7, 2026
1430831
Set git identity, clarify prompt
marians Feb 7, 2026
e75e47a
Add early check, try sonnet
marians Feb 7, 2026
9707784
Generate list of changed files
marians Feb 7, 2026
d76d543
Back to default model haiku
marians Feb 7, 2026
26e390d
Use new image with permission mode "dontAsk"
marians Feb 7, 2026
dad386e
Specify CLAUDE_TOOLS
marians Feb 7, 2026
2f0c275
Remove CLAUDE_OUTPUT_FORMAT, which is now default
marians Feb 7, 2026
ab89169
Use different format for --allowedTools
marians Feb 7, 2026
9f5f7fc
Use latest tag
marians Feb 7, 2026
5b31f65
Pass allowed tools in new way
marians Feb 7, 2026
5c6ecf4
Bump tag
marians Feb 7, 2026
e26c336
Relax tool permission
marians Feb 7, 2026
b1911b2
Add note to prompt regarding origin/ prefix
marians Feb 7, 2026
f8ba5ed
Change Edit to Write
marians Feb 7, 2026
36c073a
Change tools again
marians Feb 7, 2026
11c2102
Allow more bash commands
marians Feb 7, 2026
76e5e78
Specify git command execution, allow more turns
marians Feb 7, 2026
60fe2bf
More prompt spec
marians Feb 7, 2026
e731c78
Merge 60fe2bf3f6cbca0fec07c20abadda56462feaeb2 into d1ba59111a9d4c495…
marians Feb 7, 2026
35d78b8
Update CHANGELOG.md with auto-update changelog workflow feature
taylorbot Feb 7, 2026
2fc163b
Use base ref instead of branch name for change comparison
marians Feb 7, 2026
6134e09
Merge branch 'custom-auto-update-workflow' of https://github.com/gian…
marians Feb 7, 2026
a20420a
Revert changelog update
marians Feb 7, 2026
5a02c4b
Merge a20420a7a1375bcd5d1b2907afda57bb501c02a1 into d1ba59111a9d4c495…
marians Feb 7, 2026
b7eb4ea
Update CHANGELOG.md with auto-update changelog workflow
taylorbot Feb 7, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
86 changes: 86 additions & 0 deletions .github/workflows/auto-update-changelog.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,86 @@
name: Auto-update changelog

on:
pull_request: {}

permissions: {}

jobs:
report:
runs-on: ubuntu-latest
permissions:
contents: write # To push commits
pull-requests: write # To comment in PR
steps:
- name: Checkout
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
fetch-depth: 0 # We need the full history to compare changes
persist-credentials: true # For the next step

- name: Check if CHANGELOG.md is already modified
id: check-changelog
run: |
CHANGED_FILES=$(git diff --name-only ${{ github.event.pull_request.base.sha }}...HEAD)
if echo "$CHANGED_FILES" | grep -q '^CHANGELOG.md$'; then
echo "skip=true" >> "$GITHUB_OUTPUT"
fi
{
echo "changed_files<<EOF"
echo "$CHANGED_FILES"
echo "EOF"
} >> "$GITHUB_OUTPUT"

- name: Set up git identity
if: steps.check-changelog.outputs.skip != 'true'
run: |
git config --local user.email "dev@giantswarm.io"
git config --local user.name "taylorbot"

- name: Update changelog
if: steps.check-changelog.outputs.skip != 'true'
uses: docker://gsoci.azurecr.io/giantswarm/claude-code-ci:0.0.0-1566f419cc86d0e5d3a1f7fa6f797ecf590d8d23
env:
ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
CLAUDE_TOOLS: "Read,Edit,Bash"
CLAUDE_ALLOWED_TOOLS: "Bash(gh *),Bash(git *),Bash(test *),Bash(cat *),Bash(echo *),Edit,Read(/github/workspace/**)"
CLAUDE_MAX_TURNS: 15
CLAUDE_PROMPT: |
You are executed in a Github action runner, in the context of a pull request.
You have the `gh` and `git` CLI available.

Your task: If a CHANGELOG.md file exists in the repository root, check if the current pull
request updates it.

If CHANGELOG.md exists, but is not updated in this PR, update it with information
about the changes in this branch compared to the default branch. Push a simple commit
to the PR's branch. Do not rebase.

Important: Use the base ref SHA (not the branch name) when comparing changes,
to ensure you only see changes from this PR, not unrelated commits on the base branch.
Run git commands one at a time, not chained with &&.
Use single-line commit messages (no newlines in the -m argument).

Normally, dependency updates fall under the '### Changed' category. In some cases,
if they are security-related, they might fall under the '### Fixed' category.

Use the pull request details below, including the list of changed files.

Do nothing else. Do not recommend next actions. Finish the given task in one step.

---------------------------------
Pull request details:

- **Title:** ${{ toJSON(github.event.pull_request.title) }}
- **Author:** ${{ toJSON(github.event.pull_request.user.login) }} (${{ toJSON(github.event.pull_request.user.name) }})
- **Branch:** ${{ toJSON(github.head_ref) }}
- **Base ref:** ${{ toJSON(github.event.pull_request.base.sha) }}
- **PR number:** ${{ toJSON(github.event.pull_request.number) }}
- **Repository:** ${{ toJSON(github.repository) }}

**Changed files:**

${{ toJSON(steps.check-changelog.outputs.changed_files) }}

---------------------------------
4 changes: 4 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

## [Unreleased]

### Added

- Add auto-update changelog workflow using docker image

### Changed

- Change default container registry to `gsoci.azurecr.io`
Expand Down