Create a commit
Creates a new Git commit object.
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. |
Path Parameters
Body
application/json
Body
The commit message
The SHA of the tree object this commit points to
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.
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.
Show Child Parameters
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.
Show Child Parameters
The PGP signature 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 to create signed commits.
Response
application/json
Response
Response
Git Commit
Low-level Git commit operations within a repository
SHA for the commit
Example:7638417db6d59f3c431d3e1f261cc637155684cd
Identifying information for the git-user
Show Child Parameters
Identifying information for the git-user
Show Child Parameters
Message describing the purpose of the commit
Example:Fix #42
Show Child Parameters
Show Child Parameters
Show Child Parameters
Path Parameters
Body
Get a commit
Gets a Git commit object.
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. |
Path Parameters
commit_sha parameter
Response
application/json
Response
Response
Git Commit
Low-level Git commit operations within a repository
SHA for the commit
Example:7638417db6d59f3c431d3e1f261cc637155684cd
Identifying information for the git-user
Show Child Parameters
Identifying information for the git-user
Show Child Parameters
Message describing the purpose of the commit
Example:Fix #42
Show Child Parameters
Show Child Parameters
Show Child Parameters
Path Parameters
List matching references
Returns an array of references from your Git database that match the supplied name. The :ref
in the URL must be formatted as heads/<branch name>
for branches and tags/<tag name>
for tags. If the :ref
doesn’t exist in the repository, but existing refs start with :ref
, they will be returned as an array.
When you use this endpoint without providing a :ref
, it will return an array of all the references from your Git database, including notes and stashes if they exist on the server. Anything in the namespace is returned, not just heads
and tags
.
Note: You need to explicitly request a pull request to trigger a test merge commit, which checks the mergeability of pull requests. For more information, see “Checking mergeability of pull requests”.
If you request matching references for a branch named feature
but the branch feature
doesn’t exist, the response can still include other matching head refs that start with the word feature
, such as featureA
and featureB
.
Query Parameters
Results per page (max 100)
Default:30
Page number of the results to fetch.
Default:1
Path Parameters
ref parameter
Response
200 application/json
Response
Response
Git references within a repository
Show Child Parameters
Path Parameters
Query Parameters
Get a reference
Returns a single reference from your Git database. The :ref
in the URL must be formatted as heads/<branch name>
for branches and tags/<tag name>
for tags. If the :ref
doesn’t match an existing ref, a 404
is returned.
Note: You need to explicitly request a pull request to trigger a test merge commit, which checks the mergeability of pull requests. For more information, see “Checking mergeability of pull requests”.
Path Parameters
ref parameter
Response
application/json
Response
Response
Git Reference
Git references within a repository
Show Child Parameters
Path Parameters
Create a reference
Creates a reference for your repository. You are unable to create new references for empty repositories, even if the commit SHA-1 hash used exists. Empty repositories are repositories without branches.
Path Parameters
Body
application/json
Body
The name of the fully qualified reference (ie: refs/heads/master
). If it doesn’t start with ‘refs’ and have at least two slashes, it will be rejected.
The SHA1 value for this reference.
Example:"refs/heads/newbranch"
Response
application/json
Response
Response
Git Reference
Git references within a repository