跳至主要内容
REST API 现在已版本化。 有关更多信息,请参阅“关于 API 版本控制”。

许可证的 REST API 端点

使用 REST API 检索流行的开源许可证以及有关特定项目许可证文件的信息。

关于许可证

GitHub 使用 开源 Ruby Gem Licensee 尝试识别项目的许可证。Licensee 将项目的 LICENSE 文件(如果存在)的内容与已知许可证的简短列表进行匹配。因此,API 不会考虑项目依赖项的许可证或其他记录项目许可证的方式,例如文档中对许可证名称的引用。

如果匹配到许可证,则返回的许可证密钥和名称符合 SPDX 规范

注意:这些端点还将返回代码库的许可证信息

GitHub 很多事情都能做,但它不是律师事务所。因此,GitHub 不提供法律建议。使用 API 或向我们发送有关它的电子邮件并不构成法律建议,也不会创建律师 - 委托人关系。如果您对可以使用和不能使用特定许可证有任何疑问,则应在继续之前咨询您自己的法律顾问。事实上,在做出可能产生法律后果或可能影响您法律权利的任何决定之前,您都应始终咨询您自己的律师。

GitHub 创建了这些端点来帮助用户获取有关开源许可证和使用它们的项目的信息。我们希望它有所帮助,但请记住,我们不是律师(至少我们大多数人不是),而且我们像其他人一样会犯错误。出于这个原因,GitHub 以“现状”为基础提供 API,不对 API 上或通过 API 提供的任何信息或许可证做出任何保证,并否认因使用 API 而导致的损害责任。

获取所有常用许可证

列出 GitHub 上最常用的许可证。有关更多信息,请参阅“许可代码库 ”。

“获取所有常用许可证”的细粒度访问令牌

此端点适用于以下细粒度令牌类型:

细粒度令牌不需要任何权限。

如果仅请求公共资源,则此端点无需身份验证即可使用。

“获取所有常用许可证”的参数

标头
名称、类型、描述
accept 字符串

建议设置为 application/vnd.github+json

查询参数
名称、类型、描述
featured 布尔值
per_page 整数

每页结果数(最大 100)。有关更多信息,请参阅“在 REST API 中使用分页”。

默认值: 30

page 整数

要获取的结果的页码。有关更多信息,请参阅“在 REST API 中使用分页”。

默认值: 1

“获取所有常用许可证”的 HTTP 响应状态代码

状态代码描述
200

确定

304

未修改

“获取所有常用许可证”的代码示例

请求示例

获取/licenses
curl -L \ -H "Accept: application/vnd.github+json" \ -H "Authorization: Bearer <YOUR-TOKEN>" \ -H "X-GitHub-Api-Version: 2022-11-28" \ https://api.github.com/licenses

回应

状态:200
[ { "key": "mit", "name": "MIT 许可证", "spdx_id": "MIT", "url": "https://api.github.com/licenses/mit", "node_id": "MDc6TGljZW5zZW1pdA==" }, { "key": "lgpl-3.0", "name": "GNU 宽通用公共许可证 v3.0", "spdx_id": "LGPL-3.0", "url": "https://api.github.com/licenses/lgpl-3.0", "node_id": "MDc6TGljZW5zZW1pdA==" }, { "key": "mpl-2.0", "name": "Mozilla 公共许可证 2.0", "spdx_id": "MPL-2.0", "url": "https://api.github.com/licenses/mpl-2.0", "node_id": "MDc6TGljZW5zZW1pdA==" }, { "key": "agpl-3.0", "name": "GNU Affero 通用公共许可证 v3.0", "spdx_id": "AGPL-3.0", "url": "https://api.github.com/licenses/agpl-3.0", "node_id": "MDc6TGljZW5zZW1pdA==" }, { "key": "unlicense", "name": "The Unlicense", "spdx_id": "Unlicense", "url": "https://api.github.com/licenses/unlicense", "node_id": "MDc6TGljZW5zZW1pdA==" }, { "key": "apache-2.0", "name": "Apache 许可证 2.0", "spdx_id": "Apache-2.0", "url": "https://api.github.com/licenses/apache-2.0", "node_id": "MDc6TGljZW5zZW1pdA==" }, { "key": "gpl-3.0", "name": "GNU 通用公共许可证 v3.0", "spdx_id": "GPL-3.0", "url": "https://api.github.com/licenses/gpl-3.0", "node_id": "MDc6TGljZW5zZW1pdA==" } ]

获取许可证

获取有关特定许可证的信息。有关更多信息,请参阅“许可代码库 ”。

“获取许可证”的细粒度访问令牌

此端点适用于以下细粒度令牌类型:

细粒度令牌不需要任何权限。

如果仅请求公共资源,则此端点无需身份验证即可使用。

“获取许可证”的参数

标头
名称、类型、描述
accept 字符串

建议设置为 application/vnd.github+json

路径参数
名称、类型、描述
license 字符串 必需

“获取许可证”的 HTTP 响应状态代码

状态代码描述
200

确定

304

未修改

403

禁止

404

资源未找到

“获取许可证”的代码示例

请求示例

获取/licenses/{license}
curl -L \ -H "Accept: application/vnd.github+json" \ -H "Authorization: Bearer <YOUR-TOKEN>" \ -H "X-GitHub-Api-Version: 2022-11-28" \ https://api.github.com/licenses/LICENSE

回应

状态:200
{ "key": "mit", "name": "MIT 许可证", "spdx_id": "MIT", "url": "https://api.github.com/licenses/mit", "node_id": "MDc6TGljZW5zZW1pdA==", "html_url": "http://choosealicense.com/licenses/mit/", "description": "一种宽松的许可证,简明扼要。它允许人们在适当署名且无担保的情况下对您的代码进行任何操作。", "implementation": "创建一个文本文件(通常命名为 LICENSE 或 LICENSE.txt),放在源代码的根目录下,并将许可证文本复制到该文件中。将 [year] 替换为当前年份,将 [fullname] 替换为版权持有人的姓名(或姓名)。", "permissions": [ "商业用途", "修改", "分发", "再许可", "私用" ], "conditions": [ "包含版权" ], "limitations": [ "不承担责任" ], "body": "\n\nMIT 许可证 (MIT)\n\n版权所有 (c) [year] [fullname]\n\n特此免费授予获得此软件及相关文档文件(“软件”)副本的任何人,无限制地处理该软件,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或出售软件副本的权利,以及允许获得软件的人员在满足以下条件的情况下这样做:\n\n上述版权声明和本许可声明应包含在所有副本或软件的任何实质性部分中。\n\n软件按“原样”提供,不提供任何形式的明示或暗示担保,包括但不限于适销性、特定用途适用性和不侵权的担保。在任何情况下,作者或版权持有人均不对任何索赔、损害或其他责任负责,无论该责任是基于合同、侵权行为或其他原因,均与软件或软件的使用或其他交易无关。\n", "featured": true }

获取存储库的许可证

此方法返回存储库许可证文件的内容(如果检测到)。

此端点支持以下自定义媒体类型。有关更多信息,请参阅“媒体类型”。

  • application/vnd.github.raw+json:返回许可证的原始内容。
  • application/vnd.github.html+json:以 HTML 格式返回许可证内容。使用 GitHub 的开源 Markup 库 将标记语言呈现为 HTML。

“获取存储库的许可证”的细粒度访问令牌

此端点适用于以下细粒度令牌类型:

细粒度令牌必须具有以下权限集

  • “元数据”存储库权限(读取)

如果仅请求公共资源,则无需身份验证或上述权限即可使用此端点。

“获取存储库的许可证”的参数

标头
名称、类型、描述
accept 字符串

建议设置为 application/vnd.github+json

路径参数
名称、类型、描述
owner 字符串 必需

存储库的帐户所有者。名称不区分大小写。

repo 字符串 必需

存储库的名称,不带 .git 扩展名。名称不区分大小写。

查询参数
名称、类型、描述
ref 字符串

要列出的结果的 Git 引用。分支的 ref 可以格式化为 refs/heads/<branch name> 或简化为 <branch name>。要引用拉取请求,请使用 refs/pull/<number>/merge

“获取存储库的许可证”的 HTTP 响应状态代码

状态代码描述
200

确定

404

资源未找到

“获取存储库的许可证”的代码示例

请求示例

获取/repos/{owner}/{repo}/license
curl -L \ -H "Accept: application/vnd.github+json" \ -H "Authorization: Bearer <YOUR-TOKEN>" \ -H "X-GitHub-Api-Version: 2022-11-28" \ https://api.github.com/repos/OWNER/REPO/license

回应

状态:200
{ "name": "LICENSE", "path": "LICENSE", "sha": "401c59dcc4570b954dd6d345e76199e1f4e76266", "size": 1077, "url": "https://api.github.com/repos/benbalter/gman/contents/LICENSE?ref=master", "html_url": "https://github.com/benbalter/gman/blob/master/LICENSE", "git_url": "https://api.github.com/repos/benbalter/gman/git/blobs/401c59dcc4570b954dd6d345e76199e1f4e76266", "download_url": "https://raw.githubusercontent.com/benbalter/gman/master/LICENSE?lab=true", "type": "文件", "content": "VGhlIE1JVCBMaWNlbnNlIChNSVQpCgpDb3B5cmlnaHQgKGMpIDIwMTMgQmVu\nIEJhbHRlcgoKUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBv\nZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weSBvZgp0\naGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmls\nZXMgKHRoZSAiU29mdHdhcmUiKSwgdG8gZGVhbCBpbgp0aGUgU29mdHdhcmUg\nd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRh\ndGlvbiB0aGUgcmlnaHRzIHRvCnVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwg\ncHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwg\nY29waWVzIG9mCnRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25z\nIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywK\nc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CgpUaGUgYWJv\ndmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGlj\nZSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGwKY29waWVzIG9yIHN1YnN0YW50\naWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KClRIRSBTT0ZUV0FSRSBJ\nUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBL\nSU5ELCBFWFBSRVNTIE9SCklNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJ\nTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLCBG\nSVRORVNTCkZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklO\nR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBPUgpDT1BZ\nUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdF\nUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIKSU4gQU4gQUNUSU9OIE9G\nIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBP\nVVQgT0YgT1IgSU4KQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBU\nSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4K\n", "encoding": "base64", "_links": { "self": "https://api.github.com/repos/benbalter/gman/contents/LICENSE?ref=master", "git": "https://api.github.com/repos/benbalter/gman/git/blobs/401c59dcc4570b954dd6d345e76199e1f4e76266", "html": "https://github.com/benbalter/gman/blob/master/LICENSE" }, "license": { "key": "mit", "name": "MIT 许可证", "spdx_id": "MIT", "url": "https://api.github.com/licenses/mit", "node_id": "MDc6TGljZW5zZW1pdA==" } }