# REST API 시작

REST API를 GitHub 사용하는 방법을 알아봅니다.

## 소개

이 문서에서는 GitHub REST API를 GitHub CLI, `curl` 또는 JavaScript와 함께 사용하는 방법을 설명합니다. 빠른 시작 가이드는 [GitHub REST API에 대한 빠른 시작](/ko/enterprise-server@3.22/rest/quickstart)을(를) 참조하세요.

<div class="ghd-tool curl">

</div>

## REST API에 대한 요청 정보

이 섹션에서는 API 요청을 구성하는 요소에 대해 설명합니다.

* [HTTP 메서드](#http-method)
* [Path](#path)
* [헤더](#headers)
* [미디어 유형](#media-types)
* [인증](#authentication)
* [매개 변수](#parameters)

REST API에 대한 모든 요청에는 HTTP 메서드와 경로가 포함됩니다. REST API 엔드포인트에 따라 요청 헤더, 인증 정보, 쿼리 매개 변수 또는 본문 매개 변수를 지정해야 할 수도 있습니다.

REST API 참조 설명서에서는 모든 엔드포인트에 대한 HTTP 메서드, 경로 및 매개 변수를 설명합니다. 또한 각 엔드포인트에 대한 예제 요청 및 응답도 표시합니다. 자세한 내용은 [REST 참조 문서](/ko/enterprise-server@3.22/rest)를 참조하세요.

### HTTP 메서드

엔드포인트의 HTTP 메서드는 지정된 리소스에서 수행하는 작업 유형을 정의합니다. 몇 가지 일반적인 HTTP 메서드는 `GET`, `POST`, `DELETE`, `PATCH`입니다. REST API 참조 설명서는 모든 끝점에 대한 HTTP 메서드를 제공합니다.

예를 들어 ["리포지토리 문제 나열" 끝점](/ko/enterprise-server@3.22/rest/issues/issues#list-repository-issues)에 대한 HTTP 메서드는 `GET`입니다.

가능한 GitHub 경우 REST API는 각 작업에 적절한 HTTP 메서드를 사용하려고 합니다.

* `GET`: 리소스를 검색하는 데 사용됩니다.
* `POST`: 리소스를 만드는 데 사용됩니다.
* `PATCH`: 리소스의 속성을 업데이트하는 데 사용됩니다.
* `PUT`: 리소스 또는 컬렉션을 바꾸는 데 사용됩니다.
* `DELETE`: 리소스를 삭제하는 데 사용됩니다.

### 경로

각 엔드포인트에는 경로가 있습니다. REST API 참조 설명서는 모든 엔드포인트에 대한 경로를 제공합니다. 예를 들어 ["리포지토리 문제 나열" 엔드포인트](/ko/enterprise-server@3.22/rest/issues/issues#list-repository-issues)의 경로는 `/repos/{owner}/{repo}/issues`입니다.

경로의 중괄호 `{}`는 지정해야 하는 경로 매개 변수를 나타냅니다. 경로 매개 변수는 엔드포인트 경로를 수정하며 요청에 필요합니다. 예를 들어 ["리포지토리 문제 나열" 엔드포인트](/ko/enterprise-server@3.22/rest/issues/issues#list-repository-issues)의 경로 매개 변수는 `{owner}` 및 `{repo}`입니다. API 요청에서 이 경로를 사용하려면 `{repo}`을(를) 문제 목록을 요청하려는 리포지토리의 이름으로 바꾸고 `{owner}`을(를) 리포지토리를 소유한 계정의 이름으로 바꿉니다.

### 헤더

헤더는 요청 및 원하는 응답에 대한 추가 정보를 제공합니다. 다음은 REST API에 대한 요청에 사용할 수 있는 헤더의 GitHub 몇 가지 예입니다. 헤더를 사용하는 요청의 예는 [요청하기](#making-a-request)를 참조하세요.

#### `Accept`

대부분의 GitHub REST API 엔드포인트는 `Accept` 헤더를 `application/vnd.github+json` 값으로 전달해야 한다고 명시합니다.
`Accept` 헤더의 값은 미디어 유형입니다. 미디어 유형에 대한 자세한 내용은 [미디어 유형](#media-types)을 참조하세요.

#### `X-GitHub-Api-Version`

요청에 사용할 REST API 버전을 지정하려면 이 헤더를 사용해야 합니다. 자세한 내용은 [API 버전](/ko/enterprise-server@3.22/rest/about-the-rest-api/api-versions)을(를) 참조하세요.

<!-- Anchor to maintain links to this heading -->

<a name="media-types"></a>

### 미디어 유형

요청의 `Accept` 헤더에 미디어 유형을 추가하여 하나 이상의 미디어 유형을 지정할 수 있습니다.
`Accept` 헤더에 대한 자세한 내용은 [`Accept`](#accept)를 참조하세요.

미디어 유형은 API에서 사용하려는 데이터의 형식을 지정합니다. 미디어 유형은 리소스에 따라 다르기 때문에 독립적으로 변경하고 다른 리소스에서 지원하지 않는 형식을 지원할 수 있습니다. 각 GitHub REST API 엔드포인트에 대한 설명서에서는 지원하는 미디어 유형을 설명합니다. 자세한 내용은 [GITHUB REST API 설명서](/ko/enterprise-server@3.22/rest)을 참조하세요.

REST API에서 GitHub 지원하는 가장 일반적인 미디어 유형은 다음과 같습니다 `application/vnd.github+json``application/json`.

일부 엔드포인트에서 사용할 수 있는 사용자 지정 미디어 유형이 있습니다. 예를 들어, [커밋](/ko/enterprise-server@3.22/rest/commits/commits#get-a-commit) 및 [끌어오기 요청](/ko/enterprise-server@3.22/rest/pulls/pulls)을 관리하는 REST API는 `diff`, `patch`, `sha` 미디어 유형을 지원합니다.
`full`, `raw`, `text` 또는 `html` 미디어 유형은 다른 일부 엔드포인트에서 사용됩니다.

모든 사용자 지정 미디어 형식 GitHub 은 다음과 `application/vnd.github.PARAM+json`같습니다. 여기서 미디어 형식의 이름은 다음과 `PARAM` 같습니다. 예를 들어 `raw` 미디어 유형을 지정하려면 `application/vnd.github.raw+json`을(를) 사용합니다.

미디어 유형을 사용하는 요청의 예는 [요청하기](#making-a-request)를 참조하세요.

### 인증

인증된 경우 많은 엔드포인트에 인증이 필요하거나 추가 정보를 반환해야 합니다. 또한 인증 시 시간당 더 많은 요청을 수행할 수 있습니다.

<div class="ghd-tool curl">

요청을 인증하려면 필요한 범위 또는 권한이 포함된 인증 토큰을 제공해야 합니다. 토큰을 얻는 몇 가지 방법이 있습니다: personal access token을(를) 생성하거나, GitHub App로 토큰을 생성하거나, `GITHUB_TOKEN` 워크플로에서 내장된 GitHub Actions을(를) 사용할 수 있습니다. 자세한 내용은 [REST API에 인증](/ko/enterprise-server@3.22/rest/authentication/authenticating-to-the-rest-api)을(를) 참조하세요.

인증 토큰을 사용하는 요청의 예는 [요청하기](#making-a-request)를 참조하세요.

> \[!NOTE]
> 토큰을 만들지 않으려면 사용할 수 있습니다 GitHub CLI.
> GitHub CLI 는 인증을 처리하고 계정을 안전하게 유지하는 데 도움이 됩니다. 자세한 내용은 [이 페이지의 버전을 참조GitHub CLI하세요](/ko/enterprise-server@3.22/rest/using-the-rest-api/getting-started-with-the-rest-api?tool=cli).

> \[!WARNING]
> 비밀번호나 기타 중요한 자격 증명을 처리하는 것과 동일한 방식으로 액세스 토큰을 처리합니다. 자세한 내용은 [해당 API 자격 증명 보안 유지](/ko/enterprise-server@3.22/rest/authentication/keeping-your-api-credentials-secure)을(를) 참조하세요.

</div>

<div class="ghd-tool cli">

일부 REST API 엔드포인트는 인증 없이 액세스할 수 있지만 하위 GitHub CLI 명령을 사용하여 `api` API 요청을 만들려면 인증해야 합니다.
`auth login` 하위 명령을 사용하여 GitHub에 인증합니다. 자세한 내용은 [요청하기](#making-a-request)를 참조하세요.

</div>

<div class="ghd-tool javascript">

요청을 인증하려면 필요한 범위 또는 권한이 포함된 인증 토큰을 제공해야 합니다. 토큰을 얻는 몇 가지 방법이 있습니다: personal access token을(를) 생성하거나, GitHub App로 토큰을 생성하거나, `GITHUB_TOKEN` 워크플로에서 내장된 GitHub Actions을(를) 사용할 수 있습니다. 자세한 내용은 [REST API에 인증](/ko/enterprise-server@3.22/rest/authentication/authenticating-to-the-rest-api)을(를) 참조하세요.

인증 토큰을 사용하는 요청의 예는 [요청하기](#making-a-request)를 참조하세요.

> \[!WARNING]
> 비밀번호나 기타 중요한 자격 증명을 처리하는 것과 동일한 방식으로 액세스 토큰을 처리합니다. 자세한 내용은 [해당 API 자격 증명 보안 유지](/ko/enterprise-server@3.22/rest/authentication/keeping-your-api-credentials-secure)을(를) 참조하세요.

</div>

### 매개 변수

많은 API 메서드는 요청의 매개 변수에 추가 정보를 보내도록 요구하거나 허용합니다. 매개 변수에는 경로 매개 변수, 본문 매개 변수 및 쿼리 매개 변수와 같은 몇 가지 매개 변수 유형이 있습니다.

#### 경로 매개 변수

경로 매개 변수는 엔드포인트 경로를 수정합니다. 이러한 매개 변수는 요청에 필수입니다. 자세한 내용은 [경로](#path)를 참조하세요.

#### 본문 매개 변수

본문 매개 변수를 사용하면 추가 데이터를 API에 전달할 수 있습니다. 이러한 매개 변수는 엔드포인트에 따라 선택 사항이거나 필수 사항일 수 있습니다. 예를 들어 본문 매개 변수를 사용하면 새 문제를 만들 때 문제 제목을 지정하거나 기능을 사용하거나 사용하지 않도록 설정할 때 특정 설정을 지정할 수 있습니다. 각 GitHub REST API 엔드포인트에 대한 설명서에서는 지원하는 본문 매개 변수를 설명합니다. 자세한 내용은 [GITHUB REST API 설명서](/ko/enterprise-server@3.22/rest)을 참조하세요.

예를 들어 ["문제 만들기" 엔드포인트](/ko/enterprise-server@3.22/rest/issues/issues#create-an-issue)를 수행하려면 새 문제에 대한 제목을 지정해야 합니다. 또한 필요에 따라 문제 본문에 넣을 텍스트, 새 문제에 할당할 사용자 또는 새 문제에 적용할 레이블과 같은 기타 정보를 지정할 수 있습니다. 본문 매개 변수를 사용하는 요청의 예는 [요청하기](#making-a-request)를 참조하세요.

본문 매개 변수를 전달하려면 요청을 인증해야 합니다. 자세한 내용은 [인증](#authentication)참조하세요.

#### 쿼리 매개 변수

쿼리 매개 변수를 사용하면 요청에 대해 반환되는 데이터를 제어할 수 있습니다. 이러한 매개 변수는 일반적으로 선택 사항입니다. 각 GitHub REST API 엔드포인트에 대한 설명서에서는 지원하는 모든 쿼리 매개 변수를 설명합니다. 자세한 내용은 [GITHUB REST API 설명서](/ko/enterprise-server@3.22/rest)을 참조하세요.

예를 들어 ["공개 이벤트 나열" 엔드포인트](/ko/enterprise-server@3.22/rest/activity/events#list-public-events)는 기본적으로 30개의 문제를 반환합니다.
`per_page` 쿼리 매개 변수를 사용하여 30개가 아닌 2개의 이슈를 반환할 수 있습니다.
`page` 쿼리 매개 변수를 사용하여 결과의 첫 번째 페이지만 가져올 수 있습니다. 쿼리 매개 변수를 사용하는 요청의 예는 [요청하기](#making-a-request)를 참조하세요.

## 요청하기

<div class="ghd-tool cli">

이 섹션에서는 .를 사용하여 GitHubREST API에 GitHub CLI 인증된 요청을 만드는 방법을 보여 줍니다.

### 1. 설정

macOS, Windows 또는 Linux에 GitHub CLI 설치합니다. 자세한 내용은 리포지토리의 [설치](https://github.com/cli/cli#installation) 를 GitHub CLI 참조하세요.

### 2. 인증

1. 인증 GitHub하려면 터미널에서 다음 명령을 실행합니다.

   ```shell
   gh auth login
   ```

`--scopes` 옵션을 사용하여 원하는 범위를 지정할 수 있습니다. 만든 토큰으로 인증하려는 경우 `--with-token` 옵션을 사용할 수 있습니다. 자세한 내용은 [설명서를 참조하세요GitHub CLI`auth login`](https://cli.github.com/manual/gh_auth_login).

1. 인증하려는 위치를 선택합니다.

   * GitHub에 액세스하는 경우, GitHub.com에서 **GitHub.com** 을 선택합니다.
   * 다른 도메인에서 액세스 GitHub 하는 경우 **기타**를 선택한 다음 호스트 이름(예: `octocorp.ghe.com`)을 입력합니다.

2. 화면에 표시되는 나머지 메시지를 따릅니다.

GitHub CLI 는 Git 작업에 대한 기본 프로토콜로 HTTPS를 선택하고 자격 증명으로 Git에 인증할지 묻는 프롬프트에 "예"라고 대답할 때 자동으로 Git GitHub 자격 증명을 저장합니다. 이는 별도의 자격 증명 관리자를 설정하거나 SSH를 사용하지 않고도 `git push`, `git pull` 등의 Git 명령을 사용할 수 있으므로 유용할 수 있습니다.

### 3. 요청에 대한 엔드포인트 선택

1. 요청할 엔드포인트를 선택합니다. <c0>의 <c1>REST API 설명서</c1>를 탐색하여 <c2>와 상호 작용할 수 있는 엔드포인트를 발견할 수 있습니다.

2. 엔드포인트의 HTTP 메서드 및 경로를 식별합니다. 요청과 함께 이러한 것들을 보냅니다. 자세한 내용은 [HTTP 메서드](#http-method) 및 [경로](#path)를 참조하세요.

   예를 들어 ["문제 만들기" 엔드포인트](/ko/enterprise-server@3.22/rest/issues/issues#create-an-issue)는 HTTP 메서드 `POST` 및 `/repos/{owner}/{repo}/issues` 경로를 사용합니다.

3. 필요한 경로 매개 변수를 식별합니다. 필수 경로 매개 변수는 엔드포인트의 경로에 중괄호 `{}`로 표시됩니다. 각 매개 변수 자리 표시자를 원하는 값으로 바꿉니다. 자세한 내용은 [경로](#path)를 참조하세요.

   예를 들어 ["문제 만들기" 엔드포인트](/ko/enterprise-server@3.22/rest/issues/issues#create-an-issue)는 `/repos/{owner}/{repo}/issues` 경로를 사용하며 경로 매개 변수는 `{owner}` 및 `{repo}`입니다. API 요청에서 이 경로를 사용하려면 `{repo}`을(를) 새 문제를 만들 리포지토리의 이름으로 바꾸고 `{owner}`을(를) 리포지토리를 소유한 계정의 이름으로 바꿉니다.

### 4. 다음으로 GitHub CLI를 사용하여 요청을 만드세요.

GitHub CLI
`api` 하위 명령을 사용하여 API 요청을 만듭니다. 자세한 내용은 [설명서를 참조하세요GitHub CLI`api`](https://cli.github.com/manual/gh_api).

요청 시 다음 옵션 및 값을 지정합니다.

* **--호스트:** 여러 GitHub 플랫폼에서 여러 계정에 인증된 경우 요청을 수행할 위치를 지정합니다. 예: `--hostname octocorp.ghe.com`.
* **--메서드** 다음에 HTTP 메서드와 엔드포인트의 경로가 옵니다. 자세한 내용은 [HTTP 메서드](#http-method) 및 [경로](#path)를 참조하세요.
* **--헤더**
  * **`Accept`:**`Accept` 헤더에 미디어 유형을 전달합니다. `Accept` 헤더에 여러 미디어 유형을 전달하려면 미디어 유형을 쉼표 `Accept: application/vnd.github+json,application/vnd.github.diff`로 구분합니다. 자세한 내용은 [`Accept`](#accept) 및 [미디어 유형](#media-types)을 참조하세요.
  * **`X-GitHub-Api-Version`:**`X-GitHub-Api-Version` 헤더에 API 버전을 전달합니다. 자세한 내용은 [`X-GitHub-Api-Version`](#x-github-api-version) 참조하세요.
* **`-f`** 또는 **`-F`** 은(는) `key=value` 형식의 본문 매개 변수 또는 쿼리 매개 변수 뒤에 옵니다. `-F` 옵션을 사용하여 숫자, 부울 또는 null인 매개 변수를 전달합니다. `-f` 옵션을 사용하여 문자열 매개 변수를 전달합니다.

  일부 엔드포인트는 배열인 쿼리 매개 변수를 사용합니다. 쿼리 문자열에서 배열을 보내려면 배열 항목당 쿼리 매개 변수를 한 번 사용하고 쿼리 매개 변수 이름 뒤에 `[]`을(를) 추가 합니다. 예를 들어 두 리포지토리 ID의 배열을 제공하려면 `-f repository_ids[]=REPOSITORY_A_ID -f repository_ids[]=REPOSITORY_B_ID`를 사용합니다.

  요청에서 본문 매개 변수 또는 쿼리 매개 변수를 지정할 필요가 없는 경우 이 옵션을 생략합니다. 자세한 내용은 [본문 매개 변수](#body-parameters) 및 [쿼리 매개 변수](#query-parameters)를 참조하세요. 예제는 [본문 매개 변수를 사용한 예제 요청](#example-request-using-body-parameters) 및 [쿼리 매개 변수를 사용한 예제 요청](#example-request-using-query-parameters)을 참조하세요.
* **--호스트:** 여러 GitHub 플랫폼에서 여러 계정에 인증된 경우 요청을 수행할 위치를 지정합니다. 예: `--hostname octocorp.ghe.com`.

#### 예제 요청

다음 예제 요청에서는 ["Octocat 가져오기" 엔드포인트](/ko/enterprise-server@3.22/rest/meta/meta#get-octocat)를 사용하여 Octocat을 ASCII 아트로 반환합니다.

```shell copy
gh api --method GET /octocat \
--header 'Accept: application/vnd.github+json' \
--header "X-GitHub-Api-Version: 2022-11-28"
```

#### 쿼리 매개 변수를 사용하는 예제 요청

["공개 이벤트 나열" 엔드포인트](/ko/enterprise-server@3.22/rest/activity/events#list-public-events)는 기본적으로 30개의 문제를 반환합니다. 다음 예제에서는 `per_page` 쿼리 매개 변수를 사용하여 30개가 아닌 2개의 문제를 반환하고 `page` 쿼리 매개 변수를 사용하여 결과의 첫 번째 페이지만 가져옵니다.

```shell copy
gh api --method GET /events -F per_page=2 -F page=1
--header 'Accept: application/vnd.github+json' \
```

#### 본문 매개 변수를 사용한 예제 요청

다음 예제에서는 ["문제 만들기" 엔드포인트](/ko/enterprise-server@3.22/rest/issues/issues#create-an-issue)를 사용하여 지정된octocat/Spoon-Knife새 문제를 만듭니다.
`REPO-NAME`을(를) 새 문제를 만들고 싶은 리포지토리의 이름으로 바꾸고, `REPO-OWNER`을(를) 리포지토리를 소유한 계정의 이름으로 바꾸십시오. 응답에서 문제의 특정 부분을 `html_url` 식별하고, 브라우저에서 해당 문제로 이동하여 탐색합니다.

```shell copy
gh api --method POST /repos/REPO-OWNER/REPO-NAME/issues \
--header "Accept: application/vnd.github+json" \
--header "X-GitHub-Api-Version: 2022-11-28" \
-f title='Created with the REST API' \
-f body='This is a test issue created by the REST API' \
```

</div>

<div class="ghd-tool curl">

이 섹션에서는 .를 사용하여 GitHubREST API에 `curl` 인증된 요청을 만드는 방법을 보여 줍니다.

### 1. 설정

해당 머신에 `curl`이 설치되어 있어야 합니다.
`curl`이 설치되어 있는지 확인하려면 명령줄에서 `curl --version`을 실행합니다.

* `curl` 버전에 대한 정보가 출력되면 `curl`이(가) 설치된 것입니다.
* `command not found: curl`과 유사한 메시지가 표시된느 경우 `curl`이 설치되지 않은 것입니다.
  `curl`을 다운로드하여 설치합니다. 자세한 내용은 [cURL 다운로드 페이지](https://curl.se/download.html)를 참조하세요.

### 2. 요청에 대한 엔드포인트 선택

1. 요청할 엔드포인트를 선택합니다. <c0>의 <c1>REST API 설명서</c1>를 탐색하여 <c2>와 상호 작용할 수 있는 엔드포인트를 발견할 수 있습니다.

2. 엔드포인트의 HTTP 메서드 및 경로를 식별합니다. 요청과 함께 이러한 것들을 보냅니다. 자세한 내용은 [HTTP 메서드](#http-method) 및 [경로](#path)를 참조하세요.

   예를 들어 ["문제 만들기" 엔드포인트](/ko/enterprise-server@3.22/rest/issues/issues#create-an-issue)는 HTTP 메서드 `POST` 및 `/repos/{owner}/{repo}/issues` 경로를 사용합니다.

3. 필요한 경로 매개 변수를 식별합니다. 필수 경로 매개 변수는 엔드포인트의 경로에 중괄호 `{}`로 표시됩니다. 각 매개 변수 자리 표시자를 원하는 값으로 바꿉니다. 자세한 내용은 [경로](#path)를 참조하세요.

   예를 들어 ["문제 만들기" 엔드포인트](/ko/enterprise-server@3.22/rest/issues/issues#create-an-issue)는 `/repos/{owner}/{repo}/issues` 경로를 사용하며 경로 매개 변수는 `{owner}` 및 `{repo}`입니다. API 요청에서 이 경로를 사용하려면 `{repo}`을(를) 새 문제를 만들 리포지토리의 이름으로 바꾸고 `{owner}`을(를) 리포지토리를 소유한 계정의 이름으로 바꿉니다.

### 3. 인증 자격 증명 만들기

요청을 인증할 액세스 토큰을 만듭니다. 토큰을 저장하여 여러 요청에 사용할 수 있습니다. 토큰에 엔드포인트에 액세스하는 데 필요한 범위 또는 권한을 부여합니다. 해당 요청과 함께 `Authorization` 헤더에 이 토큰을 보냅니다. 자세한 내용은 [인증](#authentication)참조하세요.

### 4. `curl` 요청 만들기

`curl` 명령을 사용하여 요청을 수행합니다. 자세한 정보는 [cURL 설명서](https://curl.se/docs/manpage.html)를 참조하세요.

해당 요청에 다음 옵션 및 값을 지정합니다.

* **`--request` 또는 `-X`** 는 HTTP 메서드가 값으로 따라옵니다. 자세한 내용은 [HTTP 메서드](#http-method)를 참조하세요.
* **`--url`** 뒤에 전체 경로가 값으로 따라옵니다. 전체 경로는 GitHub REST API에 대한 기본 URL(`http(s)://HOSTNAME/api/v3`)에 대한 기본 URL과 엔드포인트의 경로(예: `http(s)://HOSTNAME/api/v3/PATH`.)를 포함하는 URL입니다. 의 이름으로 `HOSTNAME`바꿉다GitHub Enterprise Server 인스턴스. 엔드포인트의 경로로 바꿉다 `PATH` . 자세한 내용은 [경로](#path)를 참조하세요.

  쿼리 매개 변수를 사용하려면 경로 끝에 `?`를 추가한 다음 쿼리 매개 변수 이름과 값을 `parameter_name=value` 양식으로 추가합니다. 쿼리 매개 변수가 여러 개이면 `&`로 구분합니다. 쿼리 문자열에서 배열을 보내려면 배열 항목당 쿼리 매개 변수를 한 번 사용하고 쿼리 매개 변수 이름 뒤에 `[]`을(를) 추가 합니다. 예를 들어 두 리포지토리 ID의 배열을 제공하려면 `?repository_ids[]=REPOSITORY_A_ID&repository_ids[]=REPOSITORY_B_ID`를 사용합니다. 자세한 내용은 [쿼리 매개 변수](#query-parameters)를 참조하세요. 예제는 [쿼리 매개 변수를 사용하는 예제 요청](#example-request-using-query-parameters-1)을 참조하세요.
* **`--header` 또는 `-H`:**
  * **`Accept`:**`Accept` 헤더에 미디어 유형을 전달합니다. `Accept` 헤더에 여러 미디어 유형을 전달하려면 미디어 유형을 쉼표로 구분합니다. 예를 들면 `Accept: application/vnd.github+json,application/vnd.github.diff`와(과) 같습니다. 자세한 내용은 [`Accept`](#accept) 및 [미디어 유형](#media-types)을 참조하세요.
  * **`X-GitHub-Api-Version`:**`X-GitHub-Api-Version` 헤더에 API 버전을 전달합니다. 자세한 내용은 [`X-GitHub-Api-Version`](#x-github-api-version) 참조하세요.
  * **`Authorization`:**`Authorization` 헤더에 인증 토큰을 전달합니다. 대부분의 경우 `Authorization: Bearer` 또는 `Authorization: token`을 사용하여 토큰을 전달할 수 있습니다. 그러나 JWT(JSON 웹 토큰)를 전달하는 경우 `Authorization: Bearer`를 사용해야 합니다. 자세한 내용은 [인증](#authentication)참조하세요. `Authorization` 헤더를 사용하는 요청의 예제는 [본문 매개 변수를 사용한 예제 요청](#example-request-using-body-parameters-1)을 참조하세요.
* **`--data` 또는 `-d`** JSON 개체 내의 모든 본문 매개 변수가 뒤에 옵니다. 요청에 본문 매개 변수를 지정할 필요가 없는 경우 이 옵션을 생략합니다. 자세한 내용은 [본문 매개 변수](#body-parameters)를 참조하세요. 예제는 [본문 매개 변수를 사용하는 예제 요청](#example-request-using-body-parameters-1)을 참조하세요.

#### 예제 요청

다음 예제 요청에서는 ["Octocat 가져오기" 엔드포인트](/ko/enterprise-server@3.22/rest/meta/meta#get-octocat)를 사용하여 Octocat을 ASCII 아트로 반환합니다.

```shell copy
curl --request GET \
--url "https://api.github.com/octocat" \
--header "Accept: application/vnd.github+json" \
--header "X-GitHub-Api-Version: 2022-11-28"
```

#### 쿼리 매개 변수를 사용하는 예제 요청

["공개 이벤트 나열" 엔드포인트](/ko/enterprise-server@3.22/rest/activity/events#list-public-events)는 기본적으로 30개의 문제를 반환합니다. 다음 예제에서는 `per_page` 쿼리 매개 변수를 사용하여 30개가 아닌 2개의 문제를 반환하고 `page` 쿼리 매개 변수를 사용하여 결과의 첫 번째 페이지만 가져옵니다.

```shell copy
curl --request GET \
--url "http(s)://HOSTNAME/api/v3/events?per_page=2&page=1" \
--header "Accept: application/vnd.github+json" \
--header "X-GitHub-Api-Version: 2022-11-28" \
  https://api.github.com/events
```

#### 본문 매개 변수를 사용한 예제 요청

다음 예제에서는 [문제 엔드포인트 만들기](/ko/enterprise-server@3.22/rest/issues/issues#create-an-issue)를 사용하여 지정된octocat/Spoon-Knife새 문제를 만듭니다. 의 이름으로 `HOSTNAME`바꿉다GitHub Enterprise Server 인스턴스.
`REPO-NAME`을(를) 새 문제를 만들고 싶은 리포지토리의 이름으로 바꾸고, `REPO-OWNER`을(를) 리포지토리를 소유한 계정의 이름으로 바꾸십시오. 이전에 만든 인증 토큰으로 `YOUR-TOKEN`을(를) 바꾸십시오.

> \[!NOTE] <c0>을(를) 사용 중인 경우, <c1> 및 <c2>를 소유한 리포지토리 또는 조직의 구성원인 경우 리포지토리로 바꾸어야 합니다. 토큰은 해당 리포지토리에 액세스할 수 있어야 하며 리포지토리 이슈에 대한 읽기 및 쓰기 권한이 있어야 합니다. 자세한 내용은 [개인용 액세스 토큰 관리](/ko/enterprise-server@3.22/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens)을(를) 참조하세요.

```shell copy
curl \
--request POST \
--url "http(s)://HOSTNAME/api/v3/repos/REPO-OWNER/REPO-NAME/issues" \
--header "Accept: application/vnd.github+json" \
--header "X-GitHub-Api-Version: 2022-11-28" \
--header "Authorization: Bearer YOUR-TOKEN" \
--data '{
  "title": "Created with the REST API",
  "body": "This is a test issue created by the REST API"
}'
```

</div>

<div class="ghd-tool javascript">

이 섹션에서는 JavaScript 및 GitHub사용하여 REST API에 [](https://github.com/octokit/octokit.js) 요청하는 방법을 보여 줍니다. 자세한 가이드는 [REST API 및 JavaScript를 사용하여 스크립팅](/ko/enterprise-server@3.22/rest/guides/scripting-with-the-rest-api-and-javascript)을(를) 참조하세요.

### 1. 설정

다음 예제에 표시된 대로 Octokit.js 라이브러리를 사용하려면 `octokit`을 설치해야 합니다.

* `octokit`를 설치합니다. 예: `npm install octokit`.
  `octokit`를 설치 또는 로드하는 다른 방법은 [Octokit.js 추가 정보](https://github.com/octokit/octokit.js/#readme)를 참조하세요.

### 2. 요청에 대한 엔드포인트 선택

1. 요청할 엔드포인트를 선택합니다. <c0>의 <c1>REST API 설명서</c1>를 탐색하여 <c2>와 상호 작용할 수 있는 엔드포인트를 발견할 수 있습니다.

2. 엔드포인트의 HTTP 메서드 및 경로를 식별합니다. 요청과 함께 이러한 것들을 보냅니다. 자세한 내용은 [HTTP 메서드](#http-method) 및 [경로](#path)를 참조하세요.

   예를 들어 ["문제 만들기" 엔드포인트](/ko/enterprise-server@3.22/rest/issues/issues#create-an-issue)는 HTTP 메서드 `POST` 및 `/repos/{owner}/{repo}/issues` 경로를 사용합니다.

3. 필요한 경로 매개 변수를 식별합니다. 필수 경로 매개 변수는 엔드포인트의 경로에 중괄호 `{}`로 표시됩니다. 각 매개 변수 자리 표시자를 원하는 값으로 바꿉니다. 자세한 내용은 [경로](#path)를 참조하세요.

   예를 들어 ["문제 만들기" 엔드포인트](/ko/enterprise-server@3.22/rest/issues/issues#create-an-issue)는 `/repos/{owner}/{repo}/issues` 경로를 사용하며 경로 매개 변수는 `{owner}` 및 `{repo}`입니다. API 요청에서 이 경로를 사용하려면 `{repo}`을(를) 새 문제를 만들 리포지토리의 이름으로 바꾸고 `{owner}`을(를) 리포지토리를 소유한 계정의 이름으로 바꿉니다.

### 3. 액세스 토큰 만들기

요청을 인증할 액세스 토큰을 만듭니다. 토큰을 저장하여 여러 요청에 사용할 수 있습니다. 토큰에 엔드포인트에 액세스하는 데 필요한 범위 또는 권한을 부여합니다. 해당 요청과 함께 `Authorization` 헤더에 이 토큰을 보냅니다. 자세한 내용은 [인증](#authentication)참조하세요.

### 4. Octokit.js를 사용하여 요청하기

1. 스크립트로 `octokit`를 가져옵니다. 예: `import { Octokit } from "octokit";`.
   `octokit`를 가져오는 다른 방법은 [the Octokit.js 추가 정보](https://github.com/octokit/octokit.js/#readme)를 참조하세요.

2. 토큰을 사용하여 인스턴스 `Octokit` 를 만듭니다. 기본 URL을 .로 `http(s)://HOSTNAME/api/v3`설정합니다. 의 이름으로 `HOSTNAME`바꿉다GitHub Enterprise Server 인스턴스.
   `YOUR-TOKEN`을 토큰으로 바꿉니다.

   ```javascript copy
   const octokit = new Octokit({ 
     baseUrl: "http(s)://HOSTNAME/api/v3",
     auth: 'YOUR-TOKEN'
   });
   ```

3. `octokit.request`를 사용하여 요청을 실행합니다.

   * HTTP 메서드 및 경로를 `request` 메서드에 대한 첫 번째 인수로 보냅니다. 자세한 내용은 [HTTP 메서드](#http-method) 및 [경로](#path)를 참조하세요.
   * 개체의 경로, 쿼리 및 본문 매개 변수를 `request` 메서드에 대한 두 번째 인수로 지정합니다. 자세한 내용은 [매개 변수](#parameters)를 참조하세요.

   다음 예제 요청에서 HTTP 메서드는 `POST`, 경로는 `/repos/{owner}/{repo}/issues`, 경로 매개 변수는 `owner: "REPO-OWNER"` 및 `repo: "REPO-NAME"`, 본문 매개 변수는 `title: "Created with the REST API"` 및 `body: "This is a test issue created by the REST API"`입니다. 리포지토리를 소유하는 계정의 이름인 `REPO-OWNER`와 리포지토리의 이름인 `REPO-NAME`으로 바꾸세요.

   > \[!NOTE] <c0>을(를) 사용 중인 경우, <c1> 및 <c2>를 소유한 리포지토리 또는 조직의 구성원인 경우 리포지토리로 바꾸어야 합니다. 토큰은 해당 리포지토리에 액세스할 수 있어야 하며 리포지토리 이슈에 대한 읽기 및 쓰기 권한이 있어야 합니다. 자세한 내용은 [개인용 액세스 토큰 관리](/ko/enterprise-server@3.22/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens)을(를) 참조하세요.

   ```javascript copy
   await octokit.request("POST /repos/{owner}/{repo}/issues", {
     owner: "REPO-OWNER",
     repo: "REPO-NAME",
     title: "Created with the REST API",
     body: "This is a test issue created by the REST API",
   });
   ```

`request` 메서드는 자동으로 `Accept: application/vnd.github+json` 머리글을 전달합니다. 추가 헤더 또는 다른 `Accept` 머리글을 전달하려면 두 번째 인수로 전달되는 개체에 `headers` 속성을 추가합니다.
`headers` 속성의 값은 헤더 이름을 키로, 헤더 값을 값으로 가지고 있는 개체입니다.

예를 들어 다음 코드는 값이 `content-type`인 `text/plain` 헤더와 값이 `X-GitHub-Api-Version`인 `2026-03-10` 헤더를 보냅니다.

```javascript copy
await octokit.request("GET /octocat", {
  headers: {
    "content-type": "text/plain",
    "X-GitHub-Api-Version": "2026-03-10",
  },
});
```

</div>

## 응답 사용

요청하면 API는 응답 상태 코드, 응답 헤더 및 잠재적으로 응답 본문을 반환합니다.

### 응답 코드 및 헤더 정보

모든 요청은 응답의 성공을 나타내는 HTTP 상태 코드를 반환합니다. 응답 코드에 대한 자세한 내용은 [MDN HTTP 응답 상태 코드 설명서](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status)를 참조하세요.

또한 응답에는 응답에 대한 자세한 내용을 제공하는 헤더가 포함됩니다.
`X-` 또는 `x-`로 시작하는 GitHub 사용자 지정 헤더입니다. 예를 들어 헤더 `x-ratelimit-remaining` 및 `x-ratelimit-reset`은 기간 동안 수행할 수 있는 요청 수를 알려줍니다.

<div class="ghd-tool cli">

상태 코드 및 헤더를 보려면 요청을 보낼 때 `--include` 또는 `--i` 옵션을 사용합니다.

예를 들어 이 요청은 지정된octocat/Spoon-Knife목록을 가져옵니다.

```shell
gh api \
--header 'Accept: application/vnd.github+json' \
--method GET /repos/REPO-OWNER/REPO-NAME/issues \
-F per_page=2 --include
```

또한 다음과 같은 응답 코드와 헤더를 반환합니다.

```shell
HTTP/2.0 200 OK
Access-Control-Allow-Origin: *
Access-Control-Expose-Headers: ETag, Link, Location, Retry-After, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Used, X-RateLimit-Resource, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type, X-GitHub-SSO, X-GitHub-Request-Id, Deprecation, Sunset
Cache-Control: private, max-age=60, s-maxage=60
Content-Security-Policy: default-src 'none'
Content-Type: application/json; charset=utf-8
Date: Thu, 04 Aug 2022 19:56:41 GMT
Etag: W/"a63dfbcfdb73621e9d2e89551edcf9856731ced534bd7f1e114a5da1f5f73418"
Link: <https://api.github.com/repositories/1300192/issues?per_page=1&page=2>; rel="next", <https://api.github.com/repositories/1300192/issues?per_page=1&page=14817>; rel="last"
Referrer-Policy: origin-when-cross-origin, strict-origin-when-cross-origin
Server: GitHub.com
Strict-Transport-Security: max-age=31536000; includeSubdomains; preload
Vary: Accept, Authorization, Cookie, Accept-Encoding, Accept, X-Requested-With
X-Accepted-Oauth-Scopes: repo
X-Content-Type-Options: nosniff
X-Frame-Options: deny
X-Github-Api-Version-Selected: 2022-08-09
X-Github-Media-Type: github.v3; format=json
X-Github-Request-Id: 1C73:26D4:E2E500:1EF78F4:62EC2479
X-Oauth-Client-Id: 178c6fc778ccc68e1d6a
X-Oauth-Scopes: gist, read:org, repo, workflow
X-Ratelimit-Limit: 15000
X-Ratelimit-Remaining: 14996
X-Ratelimit-Reset: 1659645499
X-Ratelimit-Resource: core
X-Ratelimit-Used: 4
X-Xss-Protection: 0
```

이 예제에서 응답 코드는 성공적인 요청을 나타내는 `200`입니다.

</div>

<div class="ghd-tool javascript">

Octokit.js 사용하여 요청을 수행하면 `request` 메서드는 프라미스를 반환합니다. 요청이 성공하면 Promise 객체는 응답의 HTTP 상태 코드(`status`) 및 응답 헤더(`headers`)를 포함하는 개체로 처리됩니다. 오류가 발생하면 프로미스는 응답의 HTTP 상태 코드(`status`) 및 응답 헤더(`response.headers`)를 포함하는 개체로 반환됩니다.

오류가 발생하는 경우 `try/catch` 블록을 사용하여 오류를 catch할 수 있습니다. 예를 들어 다음 스크립트의 요청이 성공하면 스크립트는 상태 코드와 `x-ratelimit-remaining` 헤더 값을 기록합니다. 요청에 실패하면 스크립트는 상태 코드, `x-ratelimit-remaining` 헤더의 값 및 오류 메시지를 기록합니다.

다음 예제에서는 `REPO-OWNER`을(를) 리포지토리를 소유하는 계정의 이름으로 바꾸고 `REPO-NAME`을(를) 리포지토리의 이름으로 바꿉니다.

```javascript copy
try {
  const result = await octokit.request("GET /repos/{owner}/{repo}/issues", {
    owner: "REPO-OWNER",
    repo: "REPO-NAME",
    per_page: 2,
  });

  console.log(`Success! Status: ${result.status}. Rate limit remaining: ${result.headers["x-ratelimit-remaining"]}`)

} catch (error) {
  console.log(`Error! Status: ${error.status}. Rate limit remaining: ${error.headers["x-ratelimit-remaining"]}. Message: ${error.response.data.message}`)
}
```

</div>

<div class="ghd-tool curl">

상태 코드 및 헤더를 보려면 요청을 보낼 때 `--include` 또는 `--i` 옵션을 사용합니다.

예를 들어 이 요청은 지정된octocat/Spoon-Knife목록을 가져옵니다.

```shell
curl --request GET \
--url "https://api.github.com/repos/REPO-OWNER/REPO-NAME/issues?per_page=2" \
--header "Accept: application/vnd.github+json" \
--header "Authorization: Bearer YOUR-TOKEN" \
--include
```

또한 다음과 같은 응답 코드와 헤더를 반환합니다.

```shell
HTTP/2 200
server: GitHub.com
date: Thu, 04 Aug 2022 20:07:51 GMT
content-type: application/json; charset=utf-8
cache-control: public, max-age=60, s-maxage=60
vary: Accept, Accept-Encoding, Accept, X-Requested-With
etag: W/"7fceb7e8c958d3ec4d02524b042578dcc7b282192e6c939070f4a70390962e18"
x-github-media-type: github.v3; format=json
link: <https://api.github.com/repositories/1300192/issues?per_page=2&sort=updated&direction=asc&page=2>; rel="next", <https://api.github.com/repositories/1300192/issues?per_page=2&sort=updated&direction=asc&page=7409>; rel="last"
access-control-expose-headers: ETag, Link, Location, Retry-After, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Used, X-RateLimit-Resource, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type, X-GitHub-SSO, X-GitHub-Request-Id, Deprecation, Sunset
access-control-allow-origin: *
strict-transport-security: max-age=31536000; includeSubdomains; preload
x-frame-options: deny
x-content-type-options: nosniff
x-xss-protection: 0
referrer-policy: origin-when-cross-origin, strict-origin-when-cross-origin
content-security-policy: default-src 'none'
x-ratelimit-limit: 15000
x-ratelimit-remaining: 14996
x-ratelimit-reset: 1659645535
x-ratelimit-resource: core
x-ratelimit-used: 4
accept-ranges: bytes
content-length: 4936
x-github-request-id: 14E0:4BC6:F1B8BA:208E317:62EC2715
```

이 예제에서 응답 코드는 성공적인 요청을 나타내는 `200`입니다.

</div>

### 응답 본문 정보

많은 엔드포인트에서 응답 본문을 반환합니다. 달리 지정하지 않는 한 응답 본문은 JSON 형식입니다. 빈 필드는 생략되는 대신 `null`로 포함됩니다. 모든 타임스탬프는 UTC 시간, ISO 8601 형식 `YYYY-MM-DDTHH:MM:SSZ`(으)로 반환됩니다.

원하는 정보를 지정하는 GraphQL API와 달리 REST API는 일반적으로 필요한 것보다 더 많은 정보를 반환합니다. 원하는 경우 응답을 구문 분석하여 특정 정보를 가져올 수 있습니다.

<div class="ghd-tool cli">

예를 들어 `>`를 사용하여 응답을 파일로 리디렉션할 수 있습니다. 다음 예제에서는 `REPO-OWNER`을(를) 리포지토리를 소유하는 계정의 이름으로 바꾸고 `REPO-NAME`을(를) 리포지토리의 이름으로 바꿉니다.

```shell copy
gh api \
--header 'Accept: application/vnd.github+json' \
--method GET /repos/REPO-OWNER/REPO-NAME/issues \
-F per_page=2 > data.json
```

그런 다음 jq를 사용하여 각 이슈의 제목 및 작성자 ID를 가져올 수 있습니다.

```shell copy
jq '.[] | {title: .title, authorID: .user.id}' data.json
```

이전 두 명령은 다음과 같이 반환합니다.

```json
{
  "title": "Update index.html",
  "authorID": 10701255
}
{
  "title": "Edit index file",
  "authorID": 53709285
}
```

jq에 대한 자세한 정보는 [jq 설명서](https://stedolan.github.io/jq/)를 참조하세요.

</div>

<div class="ghd-tool javascript">

예를 들어 각 문제의 제목 및 작성자 ID를 가져올 수 있습니다. 다음 예제에서는 `REPO-OWNER`을(를) 리포지토리를 소유하는 계정의 이름으로 바꾸고 `REPO-NAME`을(를) 리포지토리의 이름으로 바꿉니다.

```javascript copy
try {
  const result = await octokit.request("GET /repos/{owner}/{repo}/issues", {
    owner: "REPO-OWNER",
    repo: "REPO-NAME",
    per_page: 2,
  });

  const titleAndAuthor = result.data.map(issue => {title: issue.title, authorID: issue.user.id})

  console.log(titleAndAuthor)

} catch (error) {
  console.log(`Error! Status: ${error.status}. Message: ${error.response.data.message}`)
}
```

</div>

<div class="ghd-tool curl">

예를 들어 `>`를 사용하여 응답을 파일로 리디렉션할 수 있습니다. 다음 예제에서는 리포지토리를 소유하는 계정의 이름으로 `REPO-OWNER`을(를) 대체하고, 리포지토리의 이름으로 `REPO-NAME`을(를) 대체하십시오. 의 이름으로 `HOSTNAME`바꿉다GitHub Enterprise Server 인스턴스.

```shell copy
curl --request GET \
--url "http(s)://HOSTNAME/api/v3/repos/REPO-OWNER/REPO-NAME/issues?per_page=2" \
--header "Accept: application/vnd.github+json" \
--header "Authorization: Bearer YOUR-TOKEN" > data.json
```

그런 다음 jq를 사용하여 각 이슈의 제목 및 작성자 ID를 가져올 수 있습니다.

```shell copy
jq '.[] | {title: .title, authorID: .user.id}' data.json
```

이전 두 명령은 다음과 같이 반환합니다.

```json
{
  "title": "Update index.html",
  "authorID": 10701255
}
{
  "title": "Edit index file",
  "authorID": 53709285
}
```

jq에 대한 자세한 정보는 [jq 설명서](https://stedolan.github.io/jq/)를 참조하세요.

</div>

#### 상세 표현과 요약 표현

응답에는 개별 리소스를 가져오는지 아니면 리소스 목록을 가져오는지 여부에 따라 리소스에 대한 모든 속성이 포함될 수도 있고 속성의 하위 집합만 포함될 수도 있습니다.

* 특정 리포지토리와 같은 \_개별 리소스\_를 가져올 때 응답에는 일반적으로 해당 리소스에 대한 모든 속성이 포함됩니다. 리소스의 "자세한" 표현입니다.
* 여러 리포지토리 목록과 같은 \_리소스 목록\_을 가져오는 경우 응답에는 각 리소스에 대한 속성의 하위 집합만 포함됩니다. 리소스의 "요약" 표현입니다.

경우에 따라 권한 부여는 표현에 포함된 세부 정보의 양에 영향을 줍니다.

그 이유는 일부 특성이 API에서 제공하는 계산 비용이 많이 들기 때문에 GitHub 요약 표현에서 해당 특성을 제외하기 때문입니다. 이러한 속성을 얻기 위해 자세한 표현을 가져올 수 있습니다.

설명서는 각 API 메서드에 대한 예제 응답을 제공합니다. 예제 응답은 해당 메서드에서 반환되는 모든 특성을 보여 줍니다.

#### 하이퍼미디어

모든 리소스에는 다른 리소스에 연결된 하나 이상의 `*_url` 속성이 있을 수 있습니다. 이는 적절한 API 클라이언트가 자체 URL을 생성할 필요가 없도록 명시적 URL을 제공하기 위한 것입니다. API 클라이언트는 이를 사용하는 것이 좋습니다. 이렇게 하면 개발자가 API를 더 쉽게 업그레이드할 수 있습니다. 모든 URL은 적절한 [RFC 6570](https://datatracker.ietf.org/doc/html/rfc6570) URI 템플릿이어야 합니다.

그러면 [uri\_template](https://github.com/hannesg/uri_template) gem과 같은 항목을 사용하여 이러한 템플릿을 확장할 수 있습니다.

```ruby
>> tmpl = URITemplate.new('/notifications{?since,all,participating}')
>> tmpl.expand
=> "/notifications"

>> tmpl.expand all: 1
=> "/notifications?all=1"

>> tmpl.expand all: 1, participating: 1
=> "/notifications?all=1&participating=1"
```

## 속도 제한

REST API는 GitHub 지정된 기간 내에 수행할 수 있는 요청 수를 제한합니다. 속도 제한 및 현재 속도 제한 상태를 확인하는 방법에 대한 자세한 내용은 [REST API에 대한 트래픽률 제한](/ko/enterprise-server@3.22/rest/using-the-rest-api/rate-limits-for-the-rest-api)을 참조하세요.

## 다음 단계

이 문서에서는 리포지토리에서 이슈를 나열하고 만드는 방법을 보여 줍니다. 더 많은 연습을 위해 이슈에 대해 주석을 달거나, 이슈의 제목을 편집하거나, 이슈를 닫습니다. 자세한 내용은 ["문제 주석 만들기" 엔드포인트](/ko/enterprise-server@3.22/rest/issues/comments#create-an-issue-comment) 및 ["문제 업데이트" 엔드포인트](/ko/enterprise-server@3.22/rest/issues/issues#update-an-issue)를 참조하세요.

사용할 수 있는 엔드포인트에 대한 자세한 내용은 [REST 참조 설명서](/ko/enterprise-server@3.22/rest)를 참조하세요.