Skip to main content

Create a commit

Creates a new Git [commit object](https://git-scm.com/book/en/v1/Git-Internals-Git-Objects#Commit-Objects). **Signature verification object** The response will include a `verification` object that describes the result of verifying the commit's signature. The following fields are included in the `verification` object: | Name | Type | Description | | ---- | ---- | ----------- | | `verified` | `boolean` | Indicates whether GitHub considers the signature in this commit to be verified. | | `reason` | `string` | The reason for verified value. Possible values and their meanings are enumerated in table below. | | `signature` | `string` | The signature that was extracted from the commit. | | `payload` | `string` | The value that was signed. | These are the possible values for `reason` in the `verification` object: | Value | Description | | ----- | ----------- | | `expired_key` | The key that made the signature is expired. | | `not_signing_key` | The "signing" flag is not among the usage flags in the GPG key that made the signature. | | `gpgverify_error` | There was an error communicating with the signature verification service. | | `gpgverify_unavailable` | The signature verification service is currently unavailable. | | `unsigned` | The object does not include a signature. | | `unknown_signature_type` | A non-PGP signature was found in the commit. | | `no_user` | No user was associated with the `committer` email address in the commit. | | `unverified_email` | The `committer` email address in the commit was associated with a user, but the email address is not verified on her/his account. | | `bad_email` | The `committer` email address in the commit is not included in the identities of the PGP key that made the signature. | | `unknown_key` | The key that made the signature has not been registered with any user's account. | | `malformed_signature` | There was an error parsing the signature. | | `invalid` | The signature could not be cryptographically verified using the key whose key-id was found in the signature. | | `valid` | None of the above errors applied, so the signature is considered to be verified. |

POST/repos/{owner}/{repo}/git/commits
Source
github-v3-rest.json
Revision
f5f067c1e6f6
Active snapshot
85e53e3d0d65

Request

Path Parameters
owner string
required
repo string
required
Body Params
required
application/jsonobject
author object
optional

Information about the author of the commit. By default, the `author` will be the authenticated user and the current date. See the `author` and `committer` object below for details.

date string<date-time>
optional

Indicates when this commit was authored (or committed). This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`.

email string
required

The email of the author (or committer) of the commit

name string
required

The name of the author (or committer) of the commit

committer object
optional

Information about the person who is making the commit. By default, `committer` will use the information set in `author`. See the `author` and `committer` object below for details.

date string<date-time>
optional

Indicates when this commit was authored (or committed). This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`.

email string
optional

The email of the author (or committer) of the commit

name string
optional

The name of the author (or committer) of the commit

message string
required

The commit message

parents array[string]
optional

The SHAs of the commits that were the parents of this commit. If omitted or empty, the commit will be written as a root commit. For a single parent, an array of one SHA should be provided; for a merge commit, an array of more than one should be provided.

signature string
optional

The [PGP signature](https://en.wikipedia.org/wiki/Pretty_Good_Privacy) of the commit. GitHub adds the signature to the `gpgsig` header of the created commit. For a commit signature to be verifiable by Git or GitHub, it must be an ASCII-armored detached PGP signature over the string commit as it would be written to the object database. To pass a `signature` parameter, you need to first manually create a valid PGP signature, which can be complicated. You may find it easier to [use the command line](https://git-scm.com/book/id/v2/Git-Tools-Signing-Your-Work) to create signed commits.

tree string
required

The SHA of the tree object this commit points to

Responses

application/json Git Commit object

Response

Headers
Location string
Example:
https://api.github.com/repos/octocat/Hello-World/git/commits/7638417db6d59f3c431d3e1f261cc637155684cd
author object
required

Identifying information for the git-user

date string<date-time>
required

Timestamp of the commit

Example: 2014-08-09T08:02:04+12:00

email string
required

Git email address of the user

Example: [email protected]

name string
required

Name of the git user

Example: Monalisa Octocat

committer object
required

Identifying information for the git-user

date string<date-time>
required

Timestamp of the commit

Example: 2014-08-09T08:02:04+12:00

email string
required

Git email address of the user

Example: [email protected]

name string
required

Name of the git user

Example: Monalisa Octocat

html_url string<uri>
required
message string
required

Message describing the purpose of the commit

Example: Fix #42

node_id string
required
parents array[object]
required
items object
html_url string<uri>
required
sha string
required

SHA for the commit

Example: 7638417db6d59f3c431d3e1f261cc637155684cd

url string<uri>
required
sha string
required

SHA for the commit

Example: 7638417db6d59f3c431d3e1f261cc637155684cd

tree object
required
sha string
required

SHA for the commit

Example: 7638417db6d59f3c431d3e1f261cc637155684cd

url string<uri>
required
url string<uri>
required
verification object
required
payload string
requirednullable
reason string
required
signature string
requirednullable
verified boolean
required
application/json Basic Error object

Resource not found

documentation_url string
optional
message string
optional
status string
optional
url string
optional
application/json Validation Error object

Validation failed

documentation_url string
required
errors array[object]
optional
items object
code string
required
field string
optional
index integer
optional
message string
optional
resource string
optional
value
optional
message string
required