# GitHub Docs API

공식 GitHub Docs API를 사용하여 프로그래밍 방식으로 페이지를 나열하고, 검색하고, GitHub 문서 콘텐츠를 가져옵니다.

<!-- markdownlint-disable search-replace -->

GitHub Docs 에서는 프로그래밍 방식으로 설명서 콘텐츠에 액세스하는 여러 가지 방법을 제공합니다. 개별 문서를 Markdown 형식으로 가져오거나, 사용 가능한 모든 페이지를 나열하거나, 문서 전체에서 검색하거나, 콘텐츠를 찾을 수 있도록 AI 에이전트에 `llms.txt` 파일을 지정할 수 있습니다.

## 문서 엔드포인트

아티클 엔드포인트는 모든 GitHub Docs 페이지의 Markdown 콘텐츠 및 메타데이터를 반환합니다. 표준 아티클, REST API 참조 페이지, GraphQL 참조 페이지 및 방문 페이지를 비롯한 모든 페이지 유형을 지원합니다.

아티클 엔드포인트는 다음 쿼리 매개 변수를 허용합니다.

* `pathname` (필수): `/en/` 또는 `/ja/`와 같은 언어 접두사를 포함한 문서 경로입니다.
  * `/en/get-started/start-your-journey/what-is-github`을 예로 들 수 있습니다.

또한 `GET /api/article``GET /api/article/body` 다음과 같은 선택적 쿼리 매개 변수를 적용합니다.

* `apiVersion`: REST API 참조 페이지의 경우 사용할 API 버전을 지정합니다. 기본값은 최신 버전입니다.

### 문서 콘텐츠 가져오기

`GET https://docs.github.com/api/article/body` 는 전체 아티클 콘텐츠를 Markdown으로 반환합니다.

```shell
curl "https://docs.github.com/api/article/body?pathname=/en/get-started/start-your-journey/what-is-github"
```

버전이 지정된 문서(예: GitHub Enterprise Cloud)에 접근하려면 경로에 버전을 포함하세요:

```shell
curl "https://docs.github.com/api/article/body?pathname=/en/enterprise-cloud@latest/admin/overview/about-github-enterprise-cloud"
```

### 아티클 메타데이터 가져오기

`GET https://docs.github.com/api/article/meta` 는 제목, 소개, 제품 영역, 문서 유형 및 이동 경로를 포함하여 아티클에 대한 메타데이터를 JSON으로 반환합니다.

```shell
curl "https://docs.github.com/api/article/meta?pathname=/en/get-started/start-your-journey/what-is-github"
```

### 콘텐츠와 메타데이터를 함께 가져오기

`GET https://docs.github.com/api/article` 는 단일 JSON 응답에서 메타데이터와 아티클 본문을 모두 반환하고 본문과 메타 엔드포인트의 결과를 결합합니다.

```shell
curl "https://docs.github.com/api/article?pathname=/en/get-started/start-your-journey/what-is-github"
```

## Pagelist 엔드포인트

Pagelist 엔드포인트는 지정된 언어 및 설명서 버전에 사용할 수 있는 모든 페이지 경로 목록을 반환합니다. 이를 사용하여 모든 아티클을 검색한 다음, 아티클 엔드포인트를 사용하여 개별 문서를 가져올 수 있습니다.

### 모든 페이지 나열

`GET https://docs.github.com/api/pagelist/:lang/:version` 는 지정된 언어 및 버전에 대한 모든 페이지 경로의 줄 바꿈으로 구분된 목록을 반환합니다.

```shell
curl "https://docs.github.com/api/pagelist/en/free-pro-team@latest"
```

#### 언어 목록

`GET https://docs.github.com/api/pagelist/languages` 는 사용 가능한 모든 언어 코드를 JSON으로 반환합니다. 이를 사용하여 위의 매개 변수에 `:lang` 대한 유효한 값을 찾습니다.

#### 버전 목록

`GET https://docs.github.com/api/pagelist/versions` 는 버전 번호를 포함하여 GitHub Enterprise Server 사용 가능한 모든 설명서 버전을 JSON으로 반환합니다. 이를 사용하여 위의 매개 변수에 `:version` 대한 유효한 값을 찾습니다.

## 엔드포인트 검색

검색 엔드포인트를 사용하면 모든 GitHub Docs 콘텐츠를 검색할 수 있습니다. 일치하는 각 페이지에 대한 강조 표시 및 메타데이터를 사용하여 관련성별로 정렬된 결과를 반환합니다.

### 문서 콘텐츠 검색

`GET https://docs.github.com/api/search/v1` 에서는 다음 쿼리 매개 변수를 허용합니다.

* `query` (필수): 검색어입니다.
* `client_name` (예: `curl`외부 클라이언트에 필요): 클라이언트 또는 통합을 식별하는 이름입니다.
* `version` (선택 사항): 검색할 설명서 버전입니다. 기본값은 `free-pro-team`입니다. 유효한 값에는 `free-pro-team`, `enterprise-cloud`, GitHub Enterprise Server 및 `3.19`와 같은 버전 번호가 포함됩니다.
* `language` (선택 사항): 검색할 언어입니다. 기본값은 `en`입니다.
* `page` (선택 사항): 페이지가 매겨진 결과의 페이지 번호입니다. 기본값은 `1`입니다.
* `size` (선택 사항): 페이지당 최대 1개까지 `50`의 결과 수입니다. 기본값은 `10`입니다.

```shell
curl "https://docs.github.com/api/search/v1?query=actions&client_name=docs-api-example&version=free-pro-team&language=en"
```

응답에는 총 일치 수에 대한 정보가 포함된 `meta` 개체와 제목, URL, 이동 경로 및 콘텐츠 강조 표시와 함께 일치하는 페이지가 포함된 `hits` 배열이 포함됩니다.

## `llms.txt` AI 에이전트용

GitHub Docs는 `llms.txt`을 따라 `https://docs.github.com/llms.txt`에 `llms.txt` 파일을 게시합니다. 이 파일은 LLM 및 AI 기반 도구에서 사용할 수 있도록 설계된 설명서 사이트의 구조화된 개요를 제공합니다.

GitHub Docs에 액세스해야 하는 에이전트나 도구를 구축하는 경우, `llms.txt`는 사용 가능한 콘텐츠와 API 엔드포인트를 찾기 위한 권장 시작점입니다.