ドキュメントには頻繁に更新が加えられ、その都度公開されています。本ページの翻訳はまだ未完成な部分があることをご了承ください。最新の情報については、英語のドキュメンテーションをご参照ください。本ページの翻訳に問題がある場合はこちらまでご連絡ください。

このバージョンの GitHub Enterprise はこの日付をもって終了となります: このバージョンの GitHub Enterprise はこの日付をもって終了となりました: 2020-08-20. 重大なセキュリティの問題に対してであっても、パッチリリースは作成されません。 パフォーマンスの向上、セキュリティの改善、新機能のためには、最新バージョンのGitHub Enterpriseにアップグレードしてください。 アップグレードに関する支援については、GitHub Enterprise supportに連絡してください。

記事のバージョン: Enterprise Server 2.18

Git データベース

ここには以下の内容があります:

Git Database API では、GitHub Enterprise 上の Git データベースに対して生の Git オブジェクトを読み書きしたり、リファレンス(ブランチ head やタグ)をリストおよび更新したりすることができます。 Git Database API の使用方法の詳細については、「Git データ API の概要」を参照してください。

Blob

Git blob (バイナリラージオブジェクト) は、各ファイルのコンテンツをリポジトリに保存する際に使用されるオブジェクトタイプです。 ファイルの SHA-1 ハッシュが計算され、blob オブジェクトに保存されます。 これらのエンドポイントを使用すると、GitHub Enterprise 上の 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 application/vnd.github.v3+json is recommended

owner string path
repo string path
content string body

Required. The new blob's content.

encoding string body

The encoding used for content. Currently, "utf-8" and "base64" are supported.

Default: utf-8

コードサンプル

Shell
curl \
  -X POST \
  -H "Accept: application/vnd.github.v3+json" \
  https://{hostname}/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'
})

Default response

Status: 201 Created
{
  "url": "https://api.github.com/repos/octocat/example/git/blobs/3a0f86fb8db8eea7ccbb9a95f325ddbedfb25e15",
  "sha": "3a0f86fb8db8eea7ccbb9a95f325ddbedfb25e15"
}

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 application/vnd.github.v3+json is recommended

owner string path
repo string path
file_sha string path

コードサンプル

Shell
curl \
  -H "Accept: application/vnd.github.v3+json" \
  https://{hostname}/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'
})

Default response

Status: 200 OK
{
  "content": "Q29udGVudCBvZiB0aGUgYmxvYg==\n",
  "encoding": "base64",
  "url": "https://api.github.com/repos/octocat/example/git/blobs/3a0f86fb8db8eea7ccbb9a95f325ddbedfb25e15",
  "sha": "3a0f86fb8db8eea7ccbb9a95f325ddbedfb25e15",
  "size": 19
}

Notes


コミット

Git コミットは、Git リポジトリ内の階層(Git ツリー)とファイルのコンテンツ(Git blob)のスナップショットです。 これらのエンドポイントを使用すると、GitHub Enterprise 上の Git データベースに対して コミットオブジェクトの読み書きができます。

Create a commit

Creates a new Git commit object.

In this example, the payload of the signature would be:

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:

These are the possible values for reason in the verification object:

ValueDescription
expired_keyThe key that made the signature is expired.
not_signing_keyThe "signing" flag is not among the usage flags in the GPG key that made the signature.
gpgverify_errorThere was an error communicating with the signature verification service.
gpgverify_unavailableThe signature verification service is currently unavailable.
unsignedThe object does not include a signature.
unknown_signature_typeA non-PGP signature was found in the commit.
no_userNo user was associated with the committer email address in the commit.
unverified_emailThe committer email address in the commit was associated with a user, but the email address is not verified on her/his account.
bad_emailThe committer email address in the commit is not included in the identities of the PGP key that made the signature.
unknown_keyThe key that made the signature has not been registered with any user's account.
malformed_signatureThere was an error parsing the signature.
invalidThe signature could not be cryptographically verified using the key whose key-id was found in the signature.
validNone 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 application/vnd.github.v3+json is recommended

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

Required. 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 author will be the authenticated user and the current date. See the author and committer object below for details.

Properties of the author 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: YYYY-MM-DDTHH:MM:SSZ.

committer object body

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: YYYY-MM-DDTHH:MM:SSZ.

signature string body

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" \
  https://{hostname}/repos/octocat/hello-world/git/commits \
  -d '{"message":"message","tree":"tree","parents":["parents"]}'
JavaScript (@octokit/core.js)
await octokit.request('POST /repos/{owner}/{repo}/git/commits', {
  owner: 'octocat',
  repo: 'hello-world',
  message: 'message',
  tree: 'tree',
  parents: [
    'parents'
  ]
})

Default 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"
    }
  ],
  "verification": {
    "verified": false,
    "reason": "unsigned",
    "signature": null,
    "payload": null
  }
}

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:

These are the possible values for reason in the verification object:

ValueDescription
expired_keyThe key that made the signature is expired.
not_signing_keyThe "signing" flag is not among the usage flags in the GPG key that made the signature.
gpgverify_errorThere was an error communicating with the signature verification service.
gpgverify_unavailableThe signature verification service is currently unavailable.
unsignedThe object does not include a signature.
unknown_signature_typeA non-PGP signature was found in the commit.
no_userNo user was associated with the committer email address in the commit.
unverified_emailThe committer email address in the commit was associated with a user, but the email address is not verified on her/his account.
bad_emailThe committer email address in the commit is not included in the identities of the PGP key that made the signature.
unknown_keyThe key that made the signature has not been registered with any user's account.
malformed_signatureThere was an error parsing the signature.
invalidThe signature could not be cryptographically verified using the key whose key-id was found in the signature.
validNone 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 application/vnd.github.v3+json is recommended

owner string path
repo string path
commit_sha string path

コードサンプル

Shell
curl \
  -H "Accept: application/vnd.github.v3+json" \
  https://{hostname}/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'
})

Default response

Status: 200 OK
{
  "sha": "7638417db6d59f3c431d3e1f261cc637155684cd",
  "node_id": "MDY6Q29tbWl0NmRjYjA5YjViNTc4NzVmMzM0ZjYxYWViZWQ2OTVlMmU0MTkzZGI1ZQ==",
  "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": "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"
    }
  ],
  "verification": {
    "verified": false,
    "reason": "unsigned",
    "signature": null,
    "payload": null
  }
}

Notes


リファレンス

Git リファレンス(git ref)は、Git コミット SHA-1 ハッシュを含むファイルです。 Gitコミットを参照するときは、ハッシュではなく覚えやすい名前の Git リファレンスを使用できます。 Git リファレンスは、新しいコミットを指すように書き換えることができます。 ブランチは、新しい Git コミットハッシュを保存する Git リファレンスです。 これらのエンドポイントを使用すると、GitHub Enterprise 上の Git データベースに対して リファレンスの読み書きができます。

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 application/vnd.github.v3+json is recommended

owner string path
repo string path
ref string body

Required. 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.

sha string body

Required. The SHA1 value for this reference.

コードサンプル

Shell
curl \
  -X POST \
  -H "Accept: application/vnd.github.v3+json" \
  https://{hostname}/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'
})

Default 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"
  }
}

Notes


Get all references

Returns 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. If there are no references to list, a 404 is returned.

Note: You need to explicitly request a pull request to trigger a merge commit creation. For more information, see "Checking mergeability of pull requests".

GET /repos/octocat/Hello-World/git/refs

You can also request a sub-namespace. For example, to get all the tag references, you can call:

GET /repos/octocat/Hello-World/git/refs/tags
get /repos/{owner}/{repo}/git/refs/{namespace}

パラメータ

Name Type In Description
accept string header

Setting to application/vnd.github.v3+json is recommended

owner string path

owner parameter

repo string path

repo parameter

per_page integer query

Results per page (max 100)

page integer query

Page number of the results to fetch.

コードサンプル

Shell
curl \
  -H "Accept: application/vnd.github.v3+json" \
  https://{hostname}/repos/octocat/hello-world/git/refs/
JavaScript (@octokit/core.js)
await octokit.request('GET /repos/{owner}/{repo}/git/refs/{namespace}', {
  owner: 'octocat',
  repo: 'hello-world'
})

Response

Status: 200 OK

Notes


Get a reference

Returns a branch or tag reference. Other than the REST API it always returns a single reference. If the REST API returns with an array then the method responds with an error.

get /repos/{owner}/{repo}/git/refs/{ref}

パラメータ

Name Type In Description
accept string header

Setting to application/vnd.github.v3+json is recommended

owner string path

owner parameter

repo string path

repo parameter

ref string path

Must be formatted as heads/branch, not just branch

コードサンプル

Shell
curl \
  -H "Accept: application/vnd.github.v3+json" \
  https://{hostname}/repos/octocat/hello-world/git/refs/REF
JavaScript (@octokit/core.js)
await octokit.request('GET /repos/{owner}/{repo}/git/refs/{ref}', {
  owner: 'octocat',
  repo: 'hello-world',
  ref: 'ref'
})

Response

Status: 200 OK

Notes


patch /repos/{owner}/{repo}/git/refs/{ref}

パラメータ

Name Type In Description
accept string header

Setting to application/vnd.github.v3+json is recommended

owner string path
repo string path
ref string path
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 will make sure you're not overwriting work.

コードサンプル

Shell
curl \
  -X PATCH \
  -H "Accept: application/vnd.github.v3+json" \
  https://{hostname}/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'
})

Default 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"
  }
}

Notes


delete /repos/{owner}/{repo}/git/refs/{ref}

パラメータ

Name Type In Description
accept string header

Setting to application/vnd.github.v3+json is recommended

owner string path
repo string path
ref string path

コードサンプル

Shell
curl \
  -X DELETE \
  -H "Accept: application/vnd.github.v3+json" \
  https://{hostname}/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'
})

Default Response

Status: 204 No Content

Notes


タグ

Git タグは Git リファレンスに似ていますが、変更しないことを指す Git コミットです。 Git タグは、特定のリリースを指すときに役立ちます。 これらのエンドポイントを使用すると、GitHub Enterprise 上の 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:

These are the possible values for reason in the verification object:

ValueDescription
expired_keyThe key that made the signature is expired.
not_signing_keyThe "signing" flag is not among the usage flags in the GPG key that made the signature.
gpgverify_errorThere was an error communicating with the signature verification service.
gpgverify_unavailableThe signature verification service is currently unavailable.
unsignedThe object does not include a signature.
unknown_signature_typeA non-PGP signature was found in the commit.
no_userNo user was associated with the committer email address in the commit.
unverified_emailThe committer email address in the commit was associated with a user, but the email address is not verified on her/his account.
bad_emailThe committer email address in the commit is not included in the identities of the PGP key that made the signature.
unknown_keyThe key that made the signature has not been registered with any user's account.
malformed_signatureThere was an error parsing the signature.
invalidThe signature could not be cryptographically verified using the key whose key-id was found in the signature.
validNone 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 application/vnd.github.v3+json is recommended

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 commit but it can also be a tree or a blob.

tagger object body

An object with information about the individual creating the tag.

Properties of the tagger object

name (string)

The name of the author of the tag

email (string)

The email of the author of the tag

date (string)

When this object was tagged. This is a timestamp in ISO 8601 format: YYYY-MM-DDTHH:MM:SSZ.

コードサンプル

Shell
curl \
  -X POST \
  -H "Accept: application/vnd.github.v3+json" \
  https://{hostname}/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'
})

Default 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
  }
}

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:

These are the possible values for reason in the verification object:

ValueDescription
expired_keyThe key that made the signature is expired.
not_signing_keyThe "signing" flag is not among the usage flags in the GPG key that made the signature.
gpgverify_errorThere was an error communicating with the signature verification service.
gpgverify_unavailableThe signature verification service is currently unavailable.
unsignedThe object does not include a signature.
unknown_signature_typeA non-PGP signature was found in the commit.
no_userNo user was associated with the committer email address in the commit.
unverified_emailThe committer email address in the commit was associated with a user, but the email address is not verified on her/his account.
bad_emailThe committer email address in the commit is not included in the identities of the PGP key that made the signature.
unknown_keyThe key that made the signature has not been registered with any user's account.
malformed_signatureThere was an error parsing the signature.
invalidThe signature could not be cryptographically verified using the key whose key-id was found in the signature.
validNone 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 application/vnd.github.v3+json is recommended

owner string path
repo string path
tag_sha string path

コードサンプル

Shell
curl \
  -H "Accept: application/vnd.github.v3+json" \
  https://{hostname}/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'
})

Default 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
  }
}

Notes


ツリー

Git ツリーオブジェクトは、Git リポジトリ内のファイル間の階層を作成します。 Git ツリーオブジェクトを使用して、ディレクトリとそこに含まれるファイルの関係を作成できます。 これらのエンドポイントを使用すると、GitHub Enterprise 上の 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 application/vnd.github.v3+json is recommended

owner string path
repo string path
tree array of objects body

Required. Objects (of path, mode, type, and sha) specifying a tree structure.

Properties of the tree items

path (string)

The file referenced in the tree.

mode (string)

The file mode; one of 100644 for file (blob), 100755 for executable (blob), 040000 for subdirectory (tree), 160000 for submodule (commit), or 120000 for a blob that specifies the path of a symlink.

type (string)

Either blob, tree, or commit.

sha (string or null)

The SHA1 checksum ID of the object in the tree. Also called tree.sha. If the value is null then the file will be deleted.

Note: Use either tree.sha or content to specify the contents of the entry. Using both tree.sha and content will return an error.

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 tree.sha.

Note: Use either tree.sha or content to specify the contents of the entry. Using both tree.sha and content will return an error.

base_tree string body

The SHA1 of the tree you want to update with new data. If you don't set this, the commit will be created on top of everything; however, it will only contain your change, the rest of your files will show up as deleted.

コードサンプル

Shell
curl \
  -X POST \
  -H "Accept: application/vnd.github.v3+json" \
  https://{hostname}/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'
    }
  ]
})

Default 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"
    }
  ]
}

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 application/vnd.github.v3+json is recommended

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 :tree_sha. For example, setting recursive to any of the following will enable returning objects or subtrees: 0, 1, "true", and "false". Omit this parameter to prevent recursively returning objects or subtrees.

コードサンプル

Shell
curl \
  -H "Accept: application/vnd.github.v3+json" \
  https://{hostname}/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
}

Notes


担当者にお尋ねください

探しているものが見つからなかったでしょうか?

弊社にお問い合わせください