Skip to content

[Schema Inaccuracy] Webhook auto merge for rebase commits #2491

@zegl

Description

@zegl

Schema Inaccuracy

auto_merge.commit_title and auto_merge.commit_message are nullable in practice, but not in the schema.

This is a real webhook from GitHub.com on 2023-04-21.

    "auto_merge": {
      "enabled_by": {
        "login": "zegl",
        "id": 47952,
        "node_id": "MDQ6VXNlcjQ3OTUy",
        "avatar_url": "https://avatars.githubusercontent.com/u/47952?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/zegl",
        "html_url": "https://github.com/zegl",
        "followers_url": "https://api.github.com/users/zegl/followers",
        "following_url": "https://api.github.com/users/zegl/following{/other_user}",
        "gists_url": "https://api.github.com/users/zegl/gists{/gist_id}",
        "starred_url": "https://api.github.com/users/zegl/starred{/owner}{/repo}",
        "subscriptions_url": "https://api.github.com/users/zegl/subscriptions",
        "organizations_url": "https://api.github.com/users/zegl/orgs",
        "repos_url": "https://api.github.com/users/zegl/repos",
        "events_url": "https://api.github.com/users/zegl/events{/privacy}",
        "received_events_url": "https://api.github.com/users/zegl/received_events",
        "type": "User",
        "site_admin": false
      },
      "merge_method": "rebase",
      "commit_title": null,
      "commit_message": null
    },

The schema looks like this:

      "auto-merge": {
        "title": "Auto merge",
        "description": "The status of auto merging a pull request.",
        "type": "object",
        "properties": {
          "enabled_by": {
            "$ref": "#/components/schemas/simple-user"
          },
          "merge_method": {
            "type": "string",
            "description": "The merge method to use.",
            "enum": [
              "merge",
              "squash",
              "rebase"
            ]
          },
          "commit_title": {
            "type": "string",
            "description": "Title for the merge commit message."
          },
          "commit_message": {
            "type": "string",
            "description": "Commit message for the merge commit."
          }
        },
        "required": [
          "enabled_by",
          "merge_method",
          "commit_title",
          "commit_message"
        ],
        "nullable": true
      },

This likely also applies to non webhook payloads.

Expected

commit_title and commit_message should be nullable.

Reproduction Steps

Trigger auto-merge with the rebase merge method, and watch the web hooks.

Metadata

Metadata

Assignees

Type

No type
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