diff --git a/.github/actions/beta-notes/action.yml b/.github/actions/beta-notes/action.yml index 94d8ca8..151b34c 100644 --- a/.github/actions/beta-notes/action.yml +++ b/.github/actions/beta-notes/action.yml @@ -1,15 +1,10 @@ name: Beta notes description: >- - Tester notes for a beta build. Hand-written notes pass through; otherwise - Claude reads the pull requests and code changed since a base build, such as + Tester notes for a beta build. Claude reads the pull requests and code changed since a base build, such as the last store release, and writes short bullets. A range with no user-facing commits, or any Claude failure, gives the fallback, so a beta never waits on it. inputs: - notes: - description: Hand-written notes; when set, they are the output and Claude does not run. - required: false - default: "" app: description: App name Claude writes for, e.g. put.io for Apple TV. required: true @@ -65,10 +60,10 @@ inputs: default: ${{ github.token }} outputs: notes: - description: Notes as one bullet per line, or the hand-written notes or fallback. + description: Notes as one bullet per line, or the fallback. value: ${{ steps.finish.outputs.notes }} source: - description: manual, claude, or fallback. + description: claude or fallback. value: ${{ steps.finish.outputs.source }} runs: using: composite @@ -77,7 +72,6 @@ runs: id: plan shell: bash env: - NOTES: ${{ inputs.notes }} APP: ${{ inputs.app }} BASE_REF: ${{ inputs.base }} TAG_PATTERN: ${{ inputs.tag-pattern }} @@ -104,7 +98,6 @@ runs: id: finish shell: bash env: - NOTES: ${{ inputs.notes }} RESULT: ${{ runner.temp }}/beta-notes-result.json MAX_LENGTH: ${{ inputs.max-length }} FALLBACK: ${{ inputs.fallback }} diff --git a/.github/actions/beta-notes/finish.sh b/.github/actions/beta-notes/finish.sh index c742e7a..6bb22ac 100755 --- a/.github/actions/beta-notes/finish.sh +++ b/.github/actions/beta-notes/finish.sh @@ -3,10 +3,7 @@ set -euo pipefail notes="" source=fallback -if [ -n "$NOTES" ]; then - notes="$NOTES" - source=manual -elif [ -s "$RESULT" ]; then +if [ -s "$RESULT" ]; then if jq -e '.is_error' "$RESULT" > /dev/null; then echo "beta-notes: Claude failed: $(jq -r '.result // .subtype' "$RESULT" | head -c 300)" >&2 fi diff --git a/.github/actions/beta-notes/plan.sh b/.github/actions/beta-notes/plan.sh index 342df57..23eebb9 100755 --- a/.github/actions/beta-notes/plan.sh +++ b/.github/actions/beta-notes/plan.sh @@ -3,11 +3,6 @@ set -euo pipefail rm -f "$RESULT" -if [ -n "$NOTES" ]; then - echo "run=false" >> "$GITHUB_OUTPUT" - exit 0 -fi - head="$(git rev-parse HEAD)" base="$BASE_REF" if [ -z "$base" ] && [ -n "$TAG_PATTERN" ]; then diff --git a/README.md b/README.md index f68062c..8ea96db 100644 --- a/README.md +++ b/README.md @@ -166,7 +166,6 @@ steps: tag-pattern: apple-tv-v* # release tags ``` -- Hand-written `notes` pass through, and Claude does not run. - The base build is `base`, or the newest tag matching `tag-pattern` below the build commit. - A range with no `feat`, `fix`, or `perf` commit outside the `deps`, `ci`, @@ -176,7 +175,7 @@ steps: - A Claude failure, an empty list, or a missing base build gives `fallback`; a beta never waits on Claude. - Bullets past `max-length` are dropped; set `500` for Google Play. -- `source` says whether the notes are `manual`, `claude`, or `fallback`. +- `source` says whether the notes are `claude` or `fallback`. The action authenticates through workload identity federation: it exchanges the job's GitHub OIDC token, so no key is stored. Its defaults name put.io's