Skip to content

fix(cms): clear governance publishing flow, remove failing publish button#1204

Open
hummusonrails wants to merge 5 commits into
ArbitrumFoundation:mainfrom
hummusonrails:fix/cms-governance-publishing-ux
Open

fix(cms): clear governance publishing flow, remove failing publish button#1204
hummusonrails wants to merge 5 commits into
ArbitrumFoundation:mainfrom
hummusonrails:fix/cms-governance-publishing-ux

Conversation

@hummusonrails

Copy link
Copy Markdown
Contributor

what

makes the decap cms governance publishing flow clear so non-technical writers never hit the protected-branch merge error.

why

main is protected and requires a pull request review. decap's "publish" button tries to merge the entry's pr directly via the github api, which branch protection correctly rejects, surfacing a red API_ERROR: Changes must be made through a pull request to writers. this looked broken and caused confusion.

decap has no native way to couple its review step to a vcs approval gate (decaporg/decap-cms#7200), and it opens the pr automatically on first save, so the write → review → ready flow already lives in the cms. the only problem is the publish button.

what changed

all in static/admin/index.html:

  • hide the publish control (css + a js safety net for class-name drift). save, the status dropdown, and "delete unpublished changes" are untouched
  • inject an on-brand banner into the editor view explaining the flow: edit → save → move to ready → a maintainer approves and publishes

no config.yml change, no github actions, no cms migration. editorial workflow and native on-save pr creation are unchanged.

writer flow after this

  1. edit a page and click save (decap opens a pr automatically)
  2. move status draft → in review → ready
  3. a maintainer reviews and merges the pr; the required approval gate is unchanged

note for repo settings

enabling "automatically delete head branches" keeps merged entries from lingering in the cms "ready" column (decaporg/decap-cms#1592). this is a repo setting, intentionally not part of this pr.

verification

on a preview deploy /admin/: confirm the publish button is gone, save/status/delete remain, the banner renders only in the editor, and marking an entry ready produces a pr with no error.

@vercel

vercel Bot commented Jun 29, 2026

Copy link
Copy Markdown

@hummusonrails is attempting to deploy a commit to the Arbitrum Foundation Team on Vercel.

A member of the Team first needs to authorize it.

@vercel

vercel Bot commented Jun 29, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
docs Ready Ready Preview Jun 29, 2026 12:22pm

Request Review

… pane

decap 3.13 renders publish/status/save as the same StyledDropdownButton, so
the publish control is discriminated by visible label rather than class. fix
the banner route match to include new entries and anchor it inside the
scrollable editing pane instead of a non-existent toolbar class.
the banner was injected into #nc-root before the editor mounted, where the
absolutely-positioned editor covers it. anchor only to the scrollable
ControlPaneContainer, wait until it exists, and re-home if misplaced so it
survives decap's editor re-render.
@hummusonrails

Copy link
Copy Markdown
Contributor Author

writers were hitting API_ERROR: Changes must be made through a pull request. decap's publish button merges directly to protected main, which gets rejected. the fix (all in static/admin/index.html): hide the publish button and add a banner explaining the flow. editorial workflow and the automatic pull request on save are unchanged.

writer flow: edit, then click save (this opens a pull request), then a status menu appears, then move it to ready, then a maintainer reviews and merges. the required approval gate is untouched.

branch protection, the approver, and any merge automation stay out of scope on the repo side. verified against a real github editorial workflow backend: publish hidden, save and status work, banner renders.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant