Skip to content

Define a merge path for App-authored signed docs sync PRs #794

Description

@ss-o

Objective

Define and validate a safe merge path for GitHub App-authored, verified documentation-sync pull requests targeting next, without bypassing or weakening the wiki's branch rules.

Evidence

The current next ruleset requires verified commit signatures and linear history. The zsh-lint reference-sync workflow intentionally uses a GitHub App token with sign-commits: true, so its pull request will be authored by the App bot and its head commits should be verified.

GitHub's documented merge behavior creates a policy conflict:

  • On a branch requiring signed commits, GitHub only permits squash merging through the web UI when the person performing the merge is the pull-request author.
  • Rebase-and-merge rewrites commits without signature verification.
  • Merge commits conflict with the required-linear-history rule.

A human maintainer therefore cannot use the ordinary GitHub UI to merge the App-authored sync PR while preserving both current rules.

Related provisioning task: z-shell/zsh-lint#85

Acceptance criteria

  • Select a merge strategy after comparing at least:
    • a maintainer-dispatched, App-authenticated squash merge after review;
    • App-enabled auto-merge gated by explicit pull-request reviews and required checks;
    • any GitHub-native alternative that preserves verified signatures and linear history.
  • Preserve required commit signatures and required linear history.
  • Require explicit human review and successful required checks before an automated or App-authenticated merge can complete.
  • Do not rely on administrator/ruleset bypass for the normal path.
  • Restrict any App token to the existing minimum repository permissions and the z-shell/wiki installation.
  • Document the operator flow, failure recovery, and emergency disable/revocation path without recording credentials or installation identifiers.
  • Validate the selected path with an App-authored PR from docs-sync/zsh-lint to next.
  • Confirm the resulting commit on next remains verified and the branch history remains linear.

Boundaries

  • This issue owns merge-policy and merge-operation design for the wiki.
  • It does not provision the GitHub App or store its credentials; that remains in Provision the GitHub App for wiki reference synchronization zsh-lint#85.
  • It must not weaken signature, history, review, or check requirements merely to make automation mergeable.
  • Do not publish App identifiers, installation details, private keys, or other secret material.

Triage

Suggested item type: Task
Suggested priority: Medium
Suggested effort: Medium
Suggested status: Todo

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions