Skip to content
Merged
Changes from all commits
Commits
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
32 changes: 32 additions & 0 deletions .github/workflows/release-notes.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
# Generates this repo's release notes on a release tag. The workflow itself is the org-wide reusable —
# this file supplies only the triggers, so "identical across every repo" becomes structural instead of
# a copy each repo has to keep in step by hand.
#
# It is a TOP-LEVEL workflow rather than a job inside release-oci, and that is load-bearing. A called
# workflow's permissions are capped at its caller's, and the release-oci shims pin `contents: read`,
# so a nested job could never write a release body or a CHANGELOG. Custom secrets are not inherited
# down a nested call either, so ANTHROPIC_API_KEY would not arrive. Triggering at the top level gives
# both natively — which is why this needs no PAT.
#
# Notes never fail a release: every sink in the reusable is independently guarded, and a missing or
# expired credential skips the job with a warning rather than a red tick.
name: release-notes

on:
push:
tags: ["[0-9]+.[0-9]+.[0-9]+"]
workflow_dispatch:
inputs:
tag:
description: "Tag to describe. Default: the ref that triggered this run."
required: false

jobs:
release-notes:
uses: krateo-platformops/.github/.github/workflows/release-notes.yaml@main
permissions:
contents: write # the release body and the CHANGELOG commit
id-token: write # claude-code-action's GitHub App auth; the reusable cannot grant itself this
secrets: inherit # CLAUDE_CODE_OAUTH_TOKEN, and the optional Slack/feed credentials
with:
tag: ${{ github.event.inputs.tag || '' }}
Loading