# Конечные точки REST API для лицензий

Используйте REST API для получения популярных лицензий open source и информации о лицензионном файле конкретного проекта.

## Сведения о лицензиях

GitHub использует [the open source Ruby Gem Licensee](https://github.com/benbalter/licensee) для попытки определить лицензию на проект. Лицензиат сопоставляет содержимое файла проекта `LICENSE` (если он существует) с кратким списком известных лицензий. В результате API не учитывает лицензии зависимостей проекта или другие средства документирования лицензии проекта, такие как ссылки на имя лицензии в документации.

Если лицензия совпадает, возвращенный ключ лицензии и имя соответствуют [спецификации SPDX](https://spdx.org/).

**Примечание.** Эти конечные точки также будут возвращать сведения о лицензии репозитория:

* [Получение репозитория](/ru/enterprise-server@3.19/rest/repos/repos#get-a-repository)
* [Список репозиториев для пользователя](/ru/enterprise-server@3.19/rest/repos/repos#list-repositories-for-a-user)
* [Список репозиториев организации](/ru/enterprise-server@3.19/rest/repos/repos#list-organization-repositories)
* [Список вилок](/ru/enterprise-server@3.19/rest/repos/forks#list-forks)
* [Список репозиториев, отслеживаемых пользователем](/ru/enterprise-server@3.19/rest/activity/watching#list-repositories-watched-by-a-user)
* [Список репозиториев команды](/ru/enterprise-server@3.19/rest/teams/teams#list-team-repositories)

> \[!WARNING]
> GitHub — это много вещей, но это не юридическая фирма. Таким образом, GitHub не предоставляет юридические консультации. Использование API или отправка нам сообщения электронной почты об этом не является юридической консультацией и не создает отношения адвоката-клиента. Если есть вопросы о том, что можно и чего нельзя делать с определенной лицензией, нужно обратиться к своему собственному юридическому консультанту, прежде чем двигаться дальше. На самом деле, всегда нужно консультироваться со своим собственным адвокатом, прежде чем принимать какие-либо решения, которые могут иметь правовые последствия или которые могут повлиять на юридические права.
>
> GitHub создал эти конечные точки, чтобы пользователи могли получать информацию о open source лицензиях и проектах, использующих их. Мы надеемся, что это поможет, но, пожалуйста, имейте в виду, что мы — не юристы (по крайней мере, большинство из нас) и что мы можем ошибаться, как и все остальные. По этой причине GitHub предоставляет API на основе "как есть" и не предоставляет никаких гарантий в отношении каких-либо сведений или лицензий, предоставленных или через него, и отказ от ответственности за ущерб, вызванный использованием API.

> \[!NOTE]
> Most endpoints use `Authorization: Bearer <YOUR-TOKEN>` and `Accept: application/vnd.github+json` headers, plus `X-GitHub-Api-Version: 2022-11-28`. Curl examples below omit these standard headers for brevity.

## Get all commonly used licenses

```
GET /licenses
```

Lists the most commonly used licenses on GitHub. For more information, see "Licensing a repository ."

### Parameters

#### Headers

* **`accept`** (string)
  Setting to `application/vnd.github+json` is recommended.

#### Path and query parameters

* **`featured`** (boolean)

* **`per_page`** (integer)
  The number of results per page (max 100). For more information, see "Using pagination in the REST API."
  Default: `30`

* **`page`** (integer)
  The page number of the results to fetch. For more information, see "Using pagination in the REST API."
  Default: `1`

### HTTP response status codes

* **200** - OK

* **304** - Not modified

### Code examples

#### Example

**Request:**

```curl
curl -L \
  -X GET \
  http(s)://HOSTNAME/api/v3/licenses
```

**Response schema (Status: 200):**

Array of `License Simple`:

* `key`: required, string
* `name`: required, string
* `url`: required, string or null, format: uri
* `spdx_id`: required, string or null
* `node_id`: required, string
* `html_url`: string, format: uri

## Get a license

```
GET /licenses/{license}
```

Gets information about a specific license. For more information, see "Licensing a repository ."

### Parameters

#### Headers

* **`accept`** (string)
  Setting to `application/vnd.github+json` is recommended.

#### Path and query parameters

* **`license`** (string) (required)

### HTTP response status codes

* **200** - OK

* **304** - Not modified

* **403** - Forbidden

* **404** - Resource not found

### Code examples

#### Example

**Request:**

```curl
curl -L \
  -X GET \
  http(s)://HOSTNAME/api/v3/licenses/LICENSE
```

**Response schema (Status: 200):**

* `key`: required, string
* `name`: required, string
* `spdx_id`: required, string or null
* `url`: required, string or null, format: uri
* `node_id`: required, string
* `html_url`: required, string, format: uri
* `description`: required, string
* `implementation`: required, string
* `permissions`: required, array of string
* `conditions`: required, array of string
* `limitations`: required, array of string
* `body`: required, string
* `featured`: required, boolean

## Get the license for a repository

```
GET /repos/{owner}/{repo}/license
```

This method returns the contents of the repository's license file, if one is detected.
This endpoint supports the following custom media types. For more information, see "Media types."

application/vnd.github.raw+json: Returns the raw contents of the license.
application/vnd.github.html+json: Returns the license contents in HTML. Markup languages are rendered to HTML using GitHub's open-source Markup library.

### Parameters

#### Headers

* **`accept`** (string)
  Setting to `application/vnd.github+json` is recommended.

#### Path and query parameters

* **`owner`** (string) (required)
  The account owner of the repository. The name is not case sensitive.

* **`repo`** (string) (required)
  The name of the repository without the .git extension. The name is not case sensitive.

* **`ref`** (string)
  The Git reference for the results you want to list. The ref for a branch can be formatted either as refs/heads/<branch name> or simply <branch name>. To reference a pull request use refs/pull/<number>/merge.

### HTTP response status codes

* **200** - OK

* **404** - Resource not found

### Code examples

#### Example

**Request:**

```curl
curl -L \
  -X GET \
  http(s)://HOSTNAME/api/v3/repos/OWNER/REPO/license
```

**Response schema (Status: 200):**

* `name`: required, string
* `path`: required, string
* `sha`: required, string
* `size`: required, integer
* `url`: required, string, format: uri
* `html_url`: required, string or null, format: uri
* `git_url`: required, string or null, format: uri
* `download_url`: required, string or null, format: uri
* `type`: required, string
* `content`: required, string
* `encoding`: required, string
* `_links`: required, object:
  * `git`: required, string or null, format: uri
  * `html`: required, string or null, format: uri
  * `self`: required, string, format: uri
* `license`: required, any of:
  * **null**
  * **License Simple**
    * `key`: required, string
    * `name`: required, string
    * `url`: required, string or null, format: uri
    * `spdx_id`: required, string or null
    * `node_id`: required, string
    * `html_url`: string, format: uri