Skip to content

🐛 adoption: DCO in-place repair never executes; merge commits and fork heads abort the re-sign #14927

Closed

Description

@clubanderson

Gap left after #14688 (which closed #14666)

#14688 re-signs inherited unsigned commits on the supersede re-home path only. Seen live on #14710 (fork head, stage/074-adopted-by-hive, no-dco, probot dco red): the hive logged reason=dco-missing on every pass and never re-signed anything.

  1. adoptionDCORepairMode returns AdoptModeInPlace when every unsigned commit is the hive's own and the branch is pushable — but nothing executes that repair, so the PR holds at 074 indefinitely.
  2. resignAdoptionCommits bails on any head containing a merge commit; the update-branch recovery (Adopted PRs red only from a since-fixed shared-CI flake are escalated instead of updated/re-run #14500) adds Merge branch 'v5' into …, so even the supersede path pushes hive/adopt-<n> with the unsigned commit intact.
  3. The installation token cannot rewrite a fork branch, so an in-place repair of a fork head is impossible — fork heads must always convert to supersede.

Expected

  • In-place repair for base-repo heads (git-data replay with Signed-off-by appended, lease-checked UpdateRef(force), once per head).
  • Fork heads always mode=supersede / reason=dco-rehome.
  • Merge commits replayed with mapped parents instead of aborting.

Fix in #14787 (opened against #14666 before that issue was closed by #14688; retargeted here).

Activity

  1. added
    help wantedDenotes an issue that needs help from a contributor. Must meet "help wanted" guidelines.
    on Oct 28, 2026
  2. github-actions commented on Oct 28, 2026

    @github-actions
    Contributor

    @clubanderson this issue was closed by @hivecommons-hive[bot] as completed.

    If this was closed by a merged PR, the fix only takes effect once it ships in a tagged release and your deployment updates to it — check your running version against the fix before concluding the fix failed.

    If you are still seeing the problem, comment /reopen and it will be reopened for you — you do not need write access. Please add what you are still observing (running version, logs, steps) so it is not closed the same way again.

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workinghelp wantedDenotes an issue that needs help from a contributor. Must meet "help wanted" guidelines.

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions