dotCMS / dotCMS/core

Release notes backfill can rewrite any public release body with no review

Open
#37,139 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Team : Enablement
Dominant language
Java
Stars
970
Forks
486
Avg merge
3d 33m
Merged PRs (30d)
170

Description

Problem

cicd_ai-release-notes-backfill.yml is a workflow_dispatch workflow whose phase ends in:

gh release edit "$RELEASE_TAG" --notes-file /tmp/release-notes.md

That is an unconditional replace on a public GitHub release body. It overwrites hand edits and cannot be undone from the workflow.

workflow_dispatch is limited to accounts with write access — never forks, never anonymous users — but that is 45 accounts on this repo today. Since this workflow shipped in March 2026 it has been an unreviewed write path to public release documentation, for any release tag, by any of those accounts.

Proposal

Add a no-op approval gate on a release-notes-backfill environment with required_reviewers: dotDevelopers, and make the generate job needs: gate.

This matches the existing pattern in cicd_evergreen-tracks-promote.yml, whose apply step gates on the evergreen-tracks-apply environment for the same reason.

Note

The environment must carry the protection rule. If it is missing, GitHub auto-creates it unprotected on first use, which silently removes the gate — it fails open, not closed.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Compare cicd_ai-release-notes-backfill.yml with cicd_evergreen-tracks-promote.yml, starting at the workflow's release-edit phase and the existing apply environment gate. Confirm the release-notes-backfill environment has the required dotDevelopers protection rule, then verify that the generate job waits for the gate and that the workflow cannot edit a release without approval.

Written by the indexing model from the issue text.

Assessment

Tech stack
github-actions, yaml
Domain
ci-cd, release, security
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Quiet
Clarity
Clearly specified
Newbie friendliness
68/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.