Push event structure (author, committer, id for commits)

Hey. There is a push webhook notification that contains commits array.
The documentation does not list these fields:

  • commits[].sha is mentioned, but actually field name is commits[].id
  • commits[].author.username
  • commits[].committer.username

Also the given example of the webhook notification has empty commits array.

Real life example of push notification has such commits:

  "commits": [
      "id": "0d1a26e67d8f5eaf1f6ba5c57fc3c7d91ac0fd1c",
      "tree_id": "f9d2a07e9488b91af2641b26b9407fe22a451433",
      "distinct": true,
      "message": "Update README.md",
      "timestamp": "2015-05-05T19:40:15-04:00",
      "url": "https://github.com/baxterthehacker/public-repo/commit/0d1a26e67d8f5eaf1f6ba5c57fc3c7d91ac0fd1c",
      "author": {
        "name": "baxterthehacker",
        "email": "baxterthehacker@users.noreply.github.com",
        "username": "baxterthehacker"
      "committer": {
        "name": "baxterthehacker",
        "email": "baxterthehacker@users.noreply.github.com",
        "username": "baxterthehacker"
      "added": [],
      "removed": [],
      "modified": [
  1. Can you please clarify about these fields. Are they obsolete, or reliable? Are they nullable (like if the username is not resolved)
  2. Can you please enhance the documentation with a better example of push notification

The related discussion in the PR that parses webhook payloads.