Git Database APIでは、GitHub Enterprise Server上のGitデータベースに対してRaw形式のGitオブジェクトを読み書きしたり、リファレンス (ブランチheadやタグ) をリストおよび更新したりすることができます。 Git Database API の使用方法の詳細については、「Git データ API の概要」を参照してください。
Blob
Git blob (バイナリラージオブジェクト) は、各ファイルのコンテンツをリポジトリに保存する際に使用されるオブジェクトタイプです。 ファイルの SHA-1 ハッシュが計算され、blob オブジェクトに保存されます。 これらのエンドポイントを使用すると、GitHub Enterprise Server 上の Git データベースに対して blob オブジェクトの読み書きができます。 blob はこれらのカスタムメディアタイプを利用します。 API でのメディアタイプの使用について詳しくは、こちらをご覧ください。
Blob のカスタムメディアタイプ
これらは、blob でサポートされているメディアタイプです。
application/json
application/vnd.github.VERSION.raw
詳しい情報については、「メディアタイプ」を参照してください。
post /repos/{owner}/{repo}/git/blobs
パラメータ
Name | Type | In | Description |
---|---|---|---|
accept |
string | header |
Setting to
|
owner |
string | path | |
repo |
string | path | |
content |
string | body |
Required. The new blob's content. |
encoding |
string | body |
The encoding used for utf-8 |
コードサンプル
Shell
curl \
-X POST \
-H "Accept: application/vnd.github.v3+json" \
http(s)://{hostname}/api/v3/repos/octocat/hello-world/git/blobs \
-d '{"content":"content"}'
JavaScript (@octokit/core.js)
await octokit.request('POST /repos/{owner}/{repo}/git/blobs', {
owner: 'octocat',
repo: 'hello-world',
content: 'content'
})
Response
Status: 201 Created
{
"url": "https://api.github.com/repos/octocat/example/git/blobs/3a0f86fb8db8eea7ccbb9a95f325ddbedfb25e15",
"sha": "3a0f86fb8db8eea7ccbb9a95f325ddbedfb25e15"
}
Forbidden
Status: 403 Forbidden
Resource not found
Status: 404 Not Found
Conflict
Status: 409 Conflict
Validation failed
Status: 422 Unprocessable Entity
Notes
Get a blob
The content
in the response will always be Base64 encoded.
Note: This API supports blobs up to 100 megabytes in size.
get /repos/{owner}/{repo}/git/blobs/{file_sha}
パラメータ
Name | Type | In | Description |
---|---|---|---|
accept |
string | header |
Setting to
|
owner |
string | path | |
repo |
string | path | |
file_sha |
string | path |
コードサンプル
Shell
curl \
-H "Accept: application/vnd.github.v3+json" \
http(s)://{hostname}/api/v3/repos/octocat/hello-world/git/blobs/FILE_SHA
JavaScript (@octokit/core.js)
await octokit.request('GET /repos/{owner}/{repo}/git/blobs/{file_sha}', {
owner: 'octocat',
repo: 'hello-world',
file_sha: 'file_sha'
})
Response
Status: 200 OK
{
"content": "Q29udGVudCBvZiB0aGUgYmxvYg==",
"encoding": "base64",
"url": "https://api.github.com/repos/octocat/example/git/blobs/3a0f86fb8db8eea7ccbb9a95f325ddbedfb25e15",
"sha": "3a0f86fb8db8eea7ccbb9a95f325ddbedfb25e15",
"size": 19,
"node_id": "Q29udGVudCBvZiB0aGUgYmxvYg=="
}
Forbidden
Status: 403 Forbidden
Resource not found
Status: 404 Not Found
Validation failed
Status: 422 Unprocessable Entity
Notes
コミット
Git コミットは、Git リポジトリ内の階層(Git ツリー)とファイルのコンテンツ(Git blob)のスナップショットです。 これらのエンドポイントを使用すると、GitHub Enterprise Server 上の Git データベースに対して コミットオブジェクトの読み書きができます。
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. |
post /repos/{owner}/{repo}/git/commits
パラメータ
Name | Type | In | Description | ||||||
---|---|---|---|---|---|---|---|---|---|
accept |
string | header |
Setting to
|
||||||
owner |
string | path | |||||||
repo |
string | path | |||||||
message |
string | body |
Required. The commit message |
||||||
tree |
string | body |
Required. The SHA of the tree object this commit points to |
||||||
parents |
array of strings | body |
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. |
||||||
author |
object | body |
Information about the author of the commit. By default, the |
||||||
Properties of the
|
name (string)
|
Required. The name of the author (or committer) of the commit |
email (string)
|
Required. The email of the author (or committer) of the commit |
date (string)
|
Indicates when this commit was authored (or committed). This is a timestamp in ISO 8601 format: |
committer
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.
Properties of the
committer
object
name (string)
|
The name of the author (or committer) of the commit |
email (string)
|
The email of the author (or committer) of the commit |
date (string)
|
Indicates when this commit was authored (or committed). This is a timestamp in ISO 8601 format: |
signature
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.
コードサンプル
Shell
curl \
-X POST \
-H "Accept: application/vnd.github.v3+json" \
http(s)://{hostname}/api/v3/repos/octocat/hello-world/git/commits \
-d '{"message":"message","tree":"tree"}'
JavaScript (@octokit/core.js)
await octokit.request('POST /repos/{owner}/{repo}/git/commits', {
owner: 'octocat',
repo: 'hello-world',
message: 'message',
tree: 'tree'
})
Response
Status: 201 Created
{
"sha": "7638417db6d59f3c431d3e1f261cc637155684cd",
"node_id": "MDY6Q29tbWl0NzYzODQxN2RiNmQ1OWYzYzQzMWQzZTFmMjYxY2M2MzcxNTU2ODRjZA==",
"url": "https://api.github.com/repos/octocat/Hello-World/git/commits/7638417db6d59f3c431d3e1f261cc637155684cd",
"author": {
"date": "2014-11-07T22:01:45Z",
"name": "Monalisa Octocat",
"email": "octocat@github.com"
},
"committer": {
"date": "2014-11-07T22:01:45Z",
"name": "Monalisa Octocat",
"email": "octocat@github.com"
},
"message": "my commit message",
"tree": {
"url": "https://api.github.com/repos/octocat/Hello-World/git/trees/827efc6d56897b048c772eb4087f854f46256132",
"sha": "827efc6d56897b048c772eb4087f854f46256132"
},
"parents": [
{
"url": "https://api.github.com/repos/octocat/Hello-World/git/commits/7d1b31e74ee336d15cbd21741bc88a537ed063a0",
"sha": "7d1b31e74ee336d15cbd21741bc88a537ed063a0",
"html_url": "https://github.com/octocat/Hello-World/commit/7d1b31e74ee336d15cbd21741bc88a537ed063a0"
}
],
"verification": {
"verified": false,
"reason": "unsigned",
"signature": null,
"payload": null
},
"html_url": "https://github.com/octocat/Hello-World/commit/7638417db6d59f3c431d3e1f261cc637155684cd"
}
Resource not found
Status: 404 Not Found
Validation failed
Status: 422 Unprocessable Entity
Notes
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. |
get /repos/{owner}/{repo}/git/commits/{commit_sha}
パラメータ
Name | Type | In | Description |
---|---|---|---|
accept |
string | header |
Setting to
|
owner |
string | path | |
repo |
string | path | |
commit_sha |
string | path |
commit_sha parameter |
コードサンプル
Shell
curl \
-H "Accept: application/vnd.github.v3+json" \
http(s)://{hostname}/api/v3/repos/octocat/hello-world/git/commits/COMMIT_SHA
JavaScript (@octokit/core.js)
await octokit.request('GET /repos/{owner}/{repo}/git/commits/{commit_sha}', {
owner: 'octocat',
repo: 'hello-world',
commit_sha: 'commit_sha'
})
Response
Status: 200 OK
{
"sha": "7638417db6d59f3c431d3e1f261cc637155684cd",
"node_id": "MDY6Q29tbWl0NmRjYjA5YjViNTc4NzVmMzM0ZjYxYWViZWQ2OTVlMmU0MTkzZGI1ZQ==",
"url": "https://api.github.com/repos/octocat/Hello-World/git/commits/7638417db6d59f3c431d3e1f261cc637155684cd",
"html_url": "https://github.com/octocat/Hello-World/commit/7638417db6d59f3c431d3e1f261cc637155684cd",
"author": {
"date": "2014-11-07T22:01:45Z",
"name": "Monalisa Octocat",
"email": "octocat@github.com"
},
"committer": {
"date": "2014-11-07T22:01:45Z",
"name": "Monalisa Octocat",
"email": "octocat@github.com"
},
"message": "added readme, because im a good github citizen",
"tree": {
"url": "https://api.github.com/repos/octocat/Hello-World/git/trees/691272480426f78a0138979dd3ce63b77f706feb",
"sha": "691272480426f78a0138979dd3ce63b77f706feb"
},
"parents": [
{
"url": "https://api.github.com/repos/octocat/Hello-World/git/commits/1acc419d4d6a9ce985db7be48c6349a0475975b5",
"sha": "1acc419d4d6a9ce985db7be48c6349a0475975b5",
"html_url": "https://github.com/octocat/Hello-World/commit/7638417db6d59f3c431d3e1f261cc637155684cd"
}
],
"verification": {
"verified": false,
"reason": "unsigned",
"signature": null,
"payload": null
}
}
Resource not found
Status: 404 Not Found
Notes
リファレンス
Git リファレンス(git ref
)は、Git コミット SHA-1 ハッシュを含むファイルです。 Gitコミットを参照するときは、ハッシュではなく覚えやすい名前の Git リファレンスを使用できます。 Git リファレンスは、新しいコミットを指すように書き換えることができます。 ブランチは、新しい Git コミットハッシュを保存する Git リファレンスです。 これらのエンドポイントを使用すると、GitHub Enterprise Server 上の Git データベースに対して リファレンスの読み書きができます。
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
.
get /repos/{owner}/{repo}/git/matching-refs/{ref}
パラメータ
Name | Type | In | Description |
---|---|---|---|
accept |
string | header |
Setting to
|
owner |
string | path | |
repo |
string | path | |
ref |
string | path |
ref parameter |
per_page |
integer | query |
Results per page (max 100) Default:30 |
page |
integer | query |
Page number of the results to fetch. Default:1 |
コードサンプル
Shell
curl \
-H "Accept: application/vnd.github.v3+json" \
http(s)://{hostname}/api/v3/repos/octocat/hello-world/git/matching-refs/REF
JavaScript (@octokit/core.js)
await octokit.request('GET /repos/{owner}/{repo}/git/matching-refs/{ref}', {
owner: 'octocat',
repo: 'hello-world',
ref: 'ref'
})
Response
Status: 200 OK
[
{
"ref": "refs/heads/feature-a",
"node_id": "MDM6UmVmcmVmcy9oZWFkcy9mZWF0dXJlLWE=",
"url": "https://api.github.com/repos/octocat/Hello-World/git/refs/heads/feature-a",
"object": {
"type": "commit",
"sha": "aa218f56b14c9653891f9e74264a383fa43fefbd",
"url": "https://api.github.com/repos/octocat/Hello-World/git/commits/aa218f56b14c9653891f9e74264a383fa43fefbd"
}
},
{
"ref": "refs/heads/feature-b",
"node_id": "MDM6UmVmcmVmcy9oZWFkcy9mZWF0dXJlLWI=",
"url": "https://api.github.com/repos/octocat/Hello-World/git/refs/heads/feature-b",
"object": {
"type": "commit",
"sha": "612077ae6dffb4d2fbd8ce0cccaa58893b07b5ac",
"url": "https://api.github.com/repos/octocat/Hello-World/git/commits/612077ae6dffb4d2fbd8ce0cccaa58893b07b5ac"
}
}
]
Notes
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".
get /repos/{owner}/{repo}/git/ref/{ref}
パラメータ
Name | Type | In | Description |
---|---|---|---|
accept |
string | header |
Setting to
|
owner |
string | path | |
repo |
string | path | |
ref |
string | path |
ref parameter |
コードサンプル
Shell
curl \
-H "Accept: application/vnd.github.v3+json" \
http(s)://{hostname}/api/v3/repos/octocat/hello-world/git/ref/REF
JavaScript (@octokit/core.js)
await octokit.request('GET /repos/{owner}/{repo}/git/ref/{ref}', {
owner: 'octocat',
repo: 'hello-world',
ref: 'ref'
})
Response
Status: 200 OK
{
"ref": "refs/heads/featureA",
"node_id": "MDM6UmVmcmVmcy9oZWFkcy9mZWF0dXJlQQ==",
"url": "https://api.github.com/repos/octocat/Hello-World/git/refs/heads/featureA",
"object": {
"type": "commit",
"sha": "aa218f56b14c9653891f9e74264a383fa43fefbd",
"url": "https://api.github.com/repos/octocat/Hello-World/git/commits/aa218f56b14c9653891f9e74264a383fa43fefbd"
}
}
Resource not found
Status: 404 Not Found
Notes
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.
post /repos/{owner}/{repo}/git/refs
パラメータ
Name | Type | In | Description |
---|---|---|---|
accept |
string | header |
Setting to
|
owner |
string | path | |
repo |
string | path | |
ref |
string | body |
Required. The name of the fully qualified reference (ie: |
sha |
string | body |
Required. The SHA1 value for this reference. |
key |
string | body |
コードサンプル
Shell
curl \
-X POST \
-H "Accept: application/vnd.github.v3+json" \
http(s)://{hostname}/api/v3/repos/octocat/hello-world/git/refs \
-d '{"ref":"ref","sha":"sha"}'
JavaScript (@octokit/core.js)
await octokit.request('POST /repos/{owner}/{repo}/git/refs', {
owner: 'octocat',
repo: 'hello-world',
ref: 'ref',
sha: 'sha'
})
Response
Status: 201 Created
{
"ref": "refs/heads/featureA",
"node_id": "MDM6UmVmcmVmcy9oZWFkcy9mZWF0dXJlQQ==",
"url": "https://api.github.com/repos/octocat/Hello-World/git/refs/heads/featureA",
"object": {
"type": "commit",
"sha": "aa218f56b14c9653891f9e74264a383fa43fefbd",
"url": "https://api.github.com/repos/octocat/Hello-World/git/commits/aa218f56b14c9653891f9e74264a383fa43fefbd"
}
}
Validation failed
Status: 422 Unprocessable Entity
Notes
patch /repos/{owner}/{repo}/git/refs/{ref}
パラメータ
Name | Type | In | Description |
---|---|---|---|
accept |
string | header |
Setting to
|
owner |
string | path | |
repo |
string | path | |
ref |
string | path |
ref parameter |
sha |
string | body |
Required. The SHA1 value to set this reference to |
force |
boolean | body |
Indicates whether to force the update or to make sure the update is a fast-forward update. Leaving this out or setting it to false |
コードサンプル
Shell
curl \
-X PATCH \
-H "Accept: application/vnd.github.v3+json" \
http(s)://{hostname}/api/v3/repos/octocat/hello-world/git/refs/REF \
-d '{"sha":"sha"}'
JavaScript (@octokit/core.js)
await octokit.request('PATCH /repos/{owner}/{repo}/git/refs/{ref}', {
owner: 'octocat',
repo: 'hello-world',
ref: 'ref',
sha: 'sha'
})
Response
Status: 200 OK
{
"ref": "refs/heads/featureA",
"node_id": "MDM6UmVmcmVmcy9oZWFkcy9mZWF0dXJlQQ==",
"url": "https://api.github.com/repos/octocat/Hello-World/git/refs/heads/featureA",
"object": {
"type": "commit",
"sha": "aa218f56b14c9653891f9e74264a383fa43fefbd",
"url": "https://api.github.com/repos/octocat/Hello-World/git/commits/aa218f56b14c9653891f9e74264a383fa43fefbd"
}
}
Validation failed
Status: 422 Unprocessable Entity
Notes
delete /repos/{owner}/{repo}/git/refs/{ref}
パラメータ
Name | Type | In | Description |
---|---|---|---|
accept |
string | header |
Setting to
|
owner |
string | path | |
repo |
string | path | |
ref |
string | path |
ref parameter |
コードサンプル
Shell
curl \
-X DELETE \
-H "Accept: application/vnd.github.v3+json" \
http(s)://{hostname}/api/v3/repos/octocat/hello-world/git/refs/REF
JavaScript (@octokit/core.js)
await octokit.request('DELETE /repos/{owner}/{repo}/git/refs/{ref}', {
owner: 'octocat',
repo: 'hello-world',
ref: 'ref'
})
Response
Status: 204 No Content
Validation failed
Status: 422 Unprocessable Entity
Notes
タグ
Git タグは Git リファレンスに似ていますが、変更しないことを指す Git コミットです。 Git タグは、特定のリリースを指すときに役立ちます。 これらのエンドポイントを使用すると、GitHub Enterprise Server 上の Git データベースに対して タグオブジェクトの読み書きができます。 Git タグ API は、アノテーションされたタグオブジェクトのみをサポートし、軽量タグはサポートしません。
Create a tag object
Note that creating a tag object does not create the reference that makes a tag in Git. If you want to create an annotated tag in Git, you have to do this call to create the tag object, and then create the refs/tags/[tag]
reference. If you want to create a lightweight tag, you only have to create the tag reference - this call would be unnecessary.
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/tags
パラメータ
Name | Type | In | Description | ||||||
---|---|---|---|---|---|---|---|---|---|
accept |
string | header |
Setting to
|
||||||
owner |
string | path | |||||||
repo |
string | path | |||||||
tag |
string | body |
Required. The tag's name. This is typically a version (e.g., "v0.0.1"). |
||||||
message |
string | body |
Required. The tag message. |
||||||
object |
string | body |
Required. The SHA of the git object this is tagging. |
||||||
type |
string | body |
Required. The type of the object we're tagging. Normally this is a |
||||||
tagger |
object | body |
An object with information about the individual creating the tag. |
||||||
Properties of the
|
name (string)
|
Required. The name of the author of the tag |
email (string)
|
Required. The email of the author of the tag |
date (string)
|
When this object was tagged. This is a timestamp in ISO 8601 format: |
コードサンプル
Shell
curl \
-X POST \
-H "Accept: application/vnd.github.v3+json" \
http(s)://{hostname}/api/v3/repos/octocat/hello-world/git/tags \
-d '{"tag":"tag","message":"message","object":"object","type":"type"}'
JavaScript (@octokit/core.js)
await octokit.request('POST /repos/{owner}/{repo}/git/tags', {
owner: 'octocat',
repo: 'hello-world',
tag: 'tag',
message: 'message',
object: 'object',
type: 'type'
})
Response
Status: 201 Created
{
"node_id": "MDM6VGFnOTQwYmQzMzYyNDhlZmFlMGY5ZWU1YmM3YjJkNWM5ODU4ODdiMTZhYw==",
"tag": "v0.0.1",
"sha": "940bd336248efae0f9ee5bc7b2d5c985887b16ac",
"url": "https://api.github.com/repos/octocat/Hello-World/git/tags/940bd336248efae0f9ee5bc7b2d5c985887b16ac",
"message": "initial version",
"tagger": {
"name": "Monalisa Octocat",
"email": "octocat@github.com",
"date": "2014-11-07T22:01:45Z"
},
"object": {
"type": "commit",
"sha": "c3d0be41ecbe669545ee3e94d31ed9a4bc91ee3c",
"url": "https://api.github.com/repos/octocat/Hello-World/git/commits/c3d0be41ecbe669545ee3e94d31ed9a4bc91ee3c"
},
"verification": {
"verified": false,
"reason": "unsigned",
"signature": null,
"payload": null
}
}
Validation failed
Status: 422 Unprocessable Entity
Notes
Get a tag
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. |
get /repos/{owner}/{repo}/git/tags/{tag_sha}
パラメータ
Name | Type | In | Description |
---|---|---|---|
accept |
string | header |
Setting to
|
owner |
string | path | |
repo |
string | path | |
tag_sha |
string | path |
コードサンプル
Shell
curl \
-H "Accept: application/vnd.github.v3+json" \
http(s)://{hostname}/api/v3/repos/octocat/hello-world/git/tags/TAG_SHA
JavaScript (@octokit/core.js)
await octokit.request('GET /repos/{owner}/{repo}/git/tags/{tag_sha}', {
owner: 'octocat',
repo: 'hello-world',
tag_sha: 'tag_sha'
})
Response
Status: 200 OK
{
"node_id": "MDM6VGFnOTQwYmQzMzYyNDhlZmFlMGY5ZWU1YmM3YjJkNWM5ODU4ODdiMTZhYw==",
"tag": "v0.0.1",
"sha": "940bd336248efae0f9ee5bc7b2d5c985887b16ac",
"url": "https://api.github.com/repos/octocat/Hello-World/git/tags/940bd336248efae0f9ee5bc7b2d5c985887b16ac",
"message": "initial version",
"tagger": {
"name": "Monalisa Octocat",
"email": "octocat@github.com",
"date": "2014-11-07T22:01:45Z"
},
"object": {
"type": "commit",
"sha": "c3d0be41ecbe669545ee3e94d31ed9a4bc91ee3c",
"url": "https://api.github.com/repos/octocat/Hello-World/git/commits/c3d0be41ecbe669545ee3e94d31ed9a4bc91ee3c"
},
"verification": {
"verified": false,
"reason": "unsigned",
"signature": null,
"payload": null
}
}
Resource not found
Status: 404 Not Found
Notes
ツリー
Git ツリーオブジェクトは、Git リポジトリ内のファイル間の階層を作成します。 Git ツリーオブジェクトを使用して、ディレクトリとそこに含まれるファイルの関係を作成できます。 これらのエンドポイントを使用すると、GitHub Enterprise Server 上の Git データベースに対して ツリーオブジェクトの読み書きができます。
Create a tree
The tree creation API accepts nested entries. If you specify both a tree and a nested path modifying that tree, this endpoint will overwrite the contents of the tree with the new path contents, and create a new tree structure.
If you use this endpoint to add, delete, or modify the file contents in a tree, you will need to commit the tree and then update a branch to point to the commit. For more information see "Create a commit" and "Update a reference."
post /repos/{owner}/{repo}/git/trees
パラメータ
Name | Type | In | Description | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
accept |
string | header |
Setting to
|
||||||||||
owner |
string | path | |||||||||||
repo |
string | path | |||||||||||
tree |
array of objects | body |
Required. Objects (of |
||||||||||
Properties of the
|
path (string)
|
The file referenced in the tree. |
mode (string)
|
The file mode; one of |
type (string)
|
Either |
sha (string or nullable)
|
The SHA1 checksum ID of the object in the tree. Also called Note: Use either |
content (string)
|
The content you want this file to have. GitHub will write this blob out and use that SHA for this entry. Use either this, or Note: Use either |
base_tree
The SHA1 of an existing Git tree object which will be used as the base for the new tree. If provided, a new Git tree object will be created from entries in the Git tree object pointed to by base_tree
and entries defined in the tree
parameter. Entries defined in the tree
parameter will overwrite items from base_tree
with the same path
. If you're creating new changes on a branch, then normally you'd set base_tree
to the SHA1 of the Git tree object of the current latest commit on the branch you're working on.
If not provided, GitHub will create a new Git tree object from only the entries defined in the tree
parameter. If you create a new commit pointing to such a tree, then all files which were a part of the parent commit's tree and were not defined in the tree
parameter will be listed as deleted by the new commit.
コードサンプル
Shell
curl \
-X POST \
-H "Accept: application/vnd.github.v3+json" \
http(s)://{hostname}/api/v3/repos/octocat/hello-world/git/trees \
-d '{"tree":[{"path":"path","mode":"mode","type":"type","sha":"sha","content":"content"}]}'
JavaScript (@octokit/core.js)
await octokit.request('POST /repos/{owner}/{repo}/git/trees', {
owner: 'octocat',
repo: 'hello-world',
tree: [
{
path: 'path',
mode: 'mode',
type: 'type',
sha: 'sha',
content: 'content'
}
]
})
Response
Status: 201 Created
{
"sha": "cd8274d15fa3ae2ab983129fb037999f264ba9a7",
"url": "https://api.github.com/repos/octocat/Hello-World/trees/cd8274d15fa3ae2ab983129fb037999f264ba9a7",
"tree": [
{
"path": "file.rb",
"mode": "100644",
"type": "blob",
"size": 132,
"sha": "7c258a9869f33c1e1e1f74fbb32f07c86cb5a75b",
"url": "https://api.github.com/repos/octocat/Hello-World/git/blobs/7c258a9869f33c1e1e1f74fbb32f07c86cb5a75b"
}
],
"truncated": true
}
Forbidden
Status: 403 Forbidden
Resource not found
Status: 404 Not Found
Validation failed
Status: 422 Unprocessable Entity
Notes
Get a tree
Returns a single tree using the SHA1 value for that tree.
If truncated
is true
in the response then the number of items in the tree
array exceeded our maximum limit. If you need to fetch more items, use the non-recursive method of fetching trees, and fetch one sub-tree at a time.
get /repos/{owner}/{repo}/git/trees/{tree_sha}
パラメータ
Name | Type | In | Description |
---|---|---|---|
accept |
string | header |
Setting to
|
owner |
string | path | |
repo |
string | path | |
tree_sha |
string | path | |
recursive |
string | query |
Setting this parameter to any value returns the objects or subtrees referenced by the tree specified in |
コードサンプル
Shell
curl \
-H "Accept: application/vnd.github.v3+json" \
http(s)://{hostname}/api/v3/repos/octocat/hello-world/git/trees/TREE_SHA
JavaScript (@octokit/core.js)
await octokit.request('GET /repos/{owner}/{repo}/git/trees/{tree_sha}', {
owner: 'octocat',
repo: 'hello-world',
tree_sha: 'tree_sha'
})
Default response
Status: 200 OK
{
"sha": "9fb037999f264ba9a7fc6274d15fa3ae2ab98312",
"url": "https://api.github.com/repos/octocat/Hello-World/trees/9fb037999f264ba9a7fc6274d15fa3ae2ab98312",
"tree": [
{
"path": "file.rb",
"mode": "100644",
"type": "blob",
"size": 30,
"sha": "44b4fc6d56897b048c772eb4087f854f46256132",
"url": "https://api.github.com/repos/octocat/Hello-World/git/blobs/44b4fc6d56897b048c772eb4087f854f46256132"
},
{
"path": "subdir",
"mode": "040000",
"type": "tree",
"sha": "f484d249c660418515fb01c2b9662073663c242e",
"url": "https://api.github.com/repos/octocat/Hello-World/git/blobs/f484d249c660418515fb01c2b9662073663c242e"
},
{
"path": "exec_file",
"mode": "100755",
"type": "blob",
"size": 75,
"sha": "45b983be36b73c0788dc9cbcb76cbb80fc7bb057",
"url": "https://api.github.com/repos/octocat/Hello-World/git/blobs/45b983be36b73c0788dc9cbcb76cbb80fc7bb057"
}
],
"truncated": false
}
Response recursively retrieving a tree
Status: 200 OK
{
"sha": "fc6274d15fa3ae2ab983129fb037999f264ba9a7",
"url": "https://api.github.com/repos/octocat/Hello-World/trees/fc6274d15fa3ae2ab983129fb037999f264ba9a7",
"tree": [
{
"path": "subdir/file.txt",
"mode": "100644",
"type": "blob",
"size": 132,
"sha": "7c258a9869f33c1e1e1f74fbb32f07c86cb5a75b",
"url": "https://api.github.com/repos/octocat/Hello-World/git/7c258a9869f33c1e1e1f74fbb32f07c86cb5a75b"
}
],
"truncated": false
}
Resource not found
Status: 404 Not Found
Validation failed
Status: 422 Unprocessable Entity