Skip to content

[Schema Inaccuracy] Missing allow_auto_merge in repos/update request body on GHES #6902

Description

@rahulsom

Schema Inaccuracy

This is the API

#/paths/~1repos~1{owner}~1{repo}/patch

The request body schema

#/paths/~1repos~1{owner}~1{repo}/patch/requestBody/content/application~1json/schema

is missing the allow_auto_merge property on every GHES description. It is present on fpt and ghec, but absent from ghes-3.17 through ghes-3.21.

GHES does accept the field. Two things in the same GHES descriptions already imply it:

  • #/paths/~1orgs~1{org}~1repos/post/requestBody/content/application~1json/schema/properties/allow_auto_merge — you can set it at repository creation.
  • #/components/schemas/full-repository/properties/allow_auto_merge — it is reported back on reads, including in the 200 response of this very PATCH.

So a repository can be created with auto-merge enabled and its current value can be read, but per the description there is no documented way to change it afterwards. The GHES web documentation for "Update a repository" does list allow_auto_merge as a body parameter, e.g. https://docs.github.com/en/enterprise-server@3.18/rest/repos/repos#update-a-repository

Expected

allow_auto_merge is present in the PATCH /repos/{owner}/{repo} request body schema for the GHES descriptions, matching fpt and ghec:

"allow_auto_merge": {
  "type": "boolean",
  "description": "Either `true` to allow auto-merge on pull requests, or `false` to disallow auto-merge.",
  "default": false
}

Reproduction Steps

With GH CLI, run this against GHES. The response shows "allowAutoMerge": true, i.e. the undocumented field took effect.

gh api --method PATCH /repos/OWNER/REPO -F allow_auto_merge=true --jq .allow_auto_merge

To confirm the gap in the description itself:

jq '.paths["/repos/{owner}/{repo}"].patch.requestBody.content["application/json"].schema.properties | has("allow_auto_merge")' \
  descriptions-next/ghes-3.21/ghes-3.21.2022-11-28.json
# false

jq '.paths["/repos/{owner}/{repo}"].patch.requestBody.content["application/json"].schema.properties | has("allow_auto_merge")' \
  descriptions-next/ghec/ghec.2022-11-28.json
# true

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions