magus v0.4.3 is out. See what's new
¶ View markdown source · ✎ Suggest an edit
1 min read

MGS3019: queue credential mismatch

magus queue apply read the rules on the base before merging anything and found the queue's required status pinned to an integration its credential is not.

[MGS3019] main requires status "merge-queue" from integration 15368, and the
queue's credential posts it as 812345 (acme-magus-queue); pin "merge-queue" to
812345 or give the queue integration 15368's credential (magus queue describe
prints the pin)

Why

A required status pinned to an integration counts only when that integration posts it. On GitHub a status from any other source fails the rule with "was not set by the expected GitHub App". The queue would post success, GitHub would not count it, and every change would wait on it forever. Apply refuses at its start so the mismatch surfaces once, by name, and never as a queue that silently stops merging.

It happens in two ways:

  • The ruleset pins the context to another integration, GitHub Actions (15368) say, and nobody applied the pin magus queue describe --app <slug> prints.
  • The queue's app was replaced, and the ruleset still pins the old one.

Resolution

Print the pin that matches the app apply holds, and apply it:

magus queue describe --provider github --base main --app <slug>

Or restore the app the ruleset expects. See the merge queue guide for the setup.

A context required without a pin accepts a status from anyone with write access, so it never raises this. Neither does a provider that reports no setup.

MGS3019merge queuemagus queuegithubrulesetscredentials
Last updated (effce93c)
Earlier changes on this page (1)

Full history ↗ · Blame source ↗

Glossary

Op

A single tool-native command a target composes (long form: operation); the middle of the work hierarchy (Spell to Op to Target). See operations.

Conventions

Placeholders

Angle brackets mark a value you replace with your own - never type the brackets:

magus run <target>
magus completion <shell>    # e.g. bash, zsh, fish

<target>, <path>, <shell>, <name> and the like are stand-ins, not literal text.