Skip to main content
이제 REST API의 버전이 지정되었습니다. 자세한 내용은 "API 버전 관리 정보"를 참조하세요.

GitHub Enterprise Server를 관리하기 위한 REST API 엔드포인트

GitHub Enterprise Server REST API를 사용하여 인스턴스를 관리합니다.

GitHub Enterprise Server API 관리 정보

GitHub Enterprise Server API 관리를 사용하여 GitHub Enterprise Server 인스턴스을(를) 관리할 수 있습니다. 예를 들어 인스턴스에서 실행되는 GitHub Enterprise Server 소프트웨어의 버전에 대한 정보를 검색하거나 여러 노드가 있는 인스턴스에서 복제 상태를 볼 수 있습니다.

GitHub Enterprise Server API 관리에 대한 엔드포인트에 API 호출을 할 때 포트 번호를 지정합니다. 인스턴스에서 TLS를 사용하는 경우 포트 번호는 8443입니다. 그렇지 않은 경우 포트 번호는 8080입니다. 포트 번호를 제공할 수 없는 경우 리디렉션을 자동으로 따르도록 클라이언트를 구성해야 합니다. 자세한 내용은 "TLS 구성"을(를) 참조하세요.

인증

GitHub Enterprise Server API 관리에 대한 엔드포인트에 요청을 인증하려면 인스턴스의 루트 사이트 관리자 계정에 대한 암호를 인증 토큰으로 지정합니다. 표준 HTTP 인증을 사용하여 암호를 보냅니다. api_key 사용자는 루트 사이트 관리자를 식별합니다. 다음 예제에서는 이 API에 대한 인증을 보여 줍니다. ROOT-SITE-ADMINISTRATOR-PASSWORD를 암호로 바꾸고 ADMINISTRATION-PORT를 8443 또는 8080으로 바꿉니다.

curl -L -u "api_key:ROOT-SITE-ADMINISTRATOR-PASSWORD" 'http(s)://HOSTNAME:ADMINISTRATION-PORT/manage'

관리 콘솔 사용자로 인증

관리 콘솔 사용자 계정은 이러한 엔드포인트에 액세스하도록 인증할 수도 있습니다. 자세한 내용은 "관리 콘솔에 대한 액세스 관리"을(를) 참조하세요.

관리 콘솔 사용자 계정에 대한 암호로 인증하려면 표준 HTTP 인증을 사용해야 합니다. 다음 예제에서는 YOUR_USER_NAME 및 YOUR_PASSWORD를 계정의 사용자 이름 및 암호로 바꿉니다.

curl -L -u "YOUR_USER_NAME:YOUR_PASSWORD" 'http(s)://HOSTNAME:ADMINISTRATION-PORT/manage'

쿼리 매개 변수

기본적으로 응답에는 인스턴스에 대해 구성된 모든 노드에 대한 정보가 포함됩니다. 여러 노드가 있는 인스턴스에서 세부 정보는 /data/user/common/cluster.conf에서 시작됩니다. 다음 쿼리 매개 변수를 사용하여 특정 노드에 대한 정보 응답을 필터링할 수 있습니다.

쿼리 매개 변수설명
uuid노드의 고유 식별자입니다.
cluster_role클러스터의 노드는 노드에 적용되는 역할입니다. 자세한 내용은 "[AUTOTITLE)(/admin/enterprise-management/configuring-clustering/about-cluster-nodes)"을(를) 참조하세요.

쉼표로 값을 구분하여 쿼리 매개 변수에 여러 값을 지정할 수 있습니다. 예를 들어 다음 요청은 curl을 사용하여 web-server 또는 storage-server 역할이 있는 노드를 반환합니다.

curl -L -u "api_key:ROOT-SITE-ADMINISTRATOR-PASSWORD" 'http(s)://HOSTNAME:ADMINISTRATION-PORT/manage/v1/config/nodes?cluster_role=WebServer,StorageServer'

Get GHES node metadata for all nodes

Get node metadata for all configured nodes in the current cluster. For more information, see "About clustering."

"Get GHES node metadata for all nodes"에 대한 매개 변수

헤더
이름, Type, 설명
accept string

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

쿼리 매개 변수
이름, Type, 설명
uuid string

The UUID which identifies a node.

cluster_roles string

The cluster roles from the cluster configuration file.

"Get GHES node metadata for all nodes"에 대한 HTTP 응답 상태 코드

상태 코드설명
200

OK

401

Unauthorized

500

Internal error

"Get GHES node metadata for all nodes"에 대한 코드 샘플

요청 예제

get/manage/v1/config/nodes
curl -L \ -H "Accept: application/vnd.github+json" \ -u "api_key:your-password" \ http(s)://HOSTNAME/manage/v1/config/nodes

Response

Status: 200
{ "topology": "Cluster", "nodes": [ { "hostname": "data1", "uuid": "1b6cf518-f97c-11ed-8544-061d81f7eedb", "cluster_roles": [ "ConsulServer", "ElasticsearchServer", "GitServer", "StorageServer" ] }, { "hostname": "data2", "uuid": "228406d4-f97c-11ed-ab01-062281bbcf03", "cluster_roles": [ "ElasticsearchServer", "StorageServer", "PagesServer" ] } ] }

Get the status of maintenance mode

Gets the status and details of maintenance mode on all available nodes. For more information, see "Enabling and scheduling maintenance mode."

"Get the status of maintenance mode"에 대한 매개 변수

헤더
이름, Type, 설명
accept string

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

쿼리 매개 변수
이름, Type, 설명
uuid string

The UUID which identifies a node.

cluster_roles string

The cluster roles from the cluster configuration file.

"Get the status of maintenance mode"에 대한 HTTP 응답 상태 코드

상태 코드설명
200

OK

400

Bad request

401

Unauthorized

500

Internal error

"Get the status of maintenance mode"에 대한 코드 샘플

요청 예제

get/manage/v1/maintenance
curl -L \ -H "Accept: application/vnd.github+json" \ -u "api_key:your-password" \ http(s)://HOSTNAME/manage/v1/maintenance

Response

Status: 200
[ { "hostname": "ghe-local-primary", "uuid": "1b6cf518-f97c-11ed-8544-061d81f7eedb", "status": "scheduled", "scheduled_time": "2006-01-02T15:04:05+00:00", "connection_services": [ { "name": "git operations", "number": 15 }, { "name": "mysql queries", "number": 6 }, { "name": "resque jobs", "number": 10 }, { "name": "aqueduct jobs", "number": 0 } ], "can_unset_maintenance": true, "ip_exception_list": [ "1.1.1.1" ], "maintenance_mode_message": "Scheduled maintenance for upgrading." } ]

Set the status of maintenance mode

Sets or schedules the maintenance mode. For more information, see "Enabling and scheduling maintenance mode."

"Set the status of maintenance mode"에 대한 매개 변수

헤더
이름, Type, 설명
accept string

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

본문 매개 변수
이름, Type, 설명
enabled boolean Required

Whether to enable maintenance mode.

uuid string

The UUID of the node to target. This parameter is incompatible with maintenance mode scheduling. Only use uuid if the value of when is empty or now.

when string

The time to enable maintenance mode. If this parameter is empty or set to now, maintenance mode is enabled immediately. Otherwise, maintenance mode is enabled at the specified time. The format is ISO 8601.

ip_exception_list array of strings

The list of IP addresses to exclude from maintenance mode. IPv4, IPv6, and CIDR addresses are supported.

maintenance_mode_message string

The message to display to users when maintenance mode is enabled.

"Set the status of maintenance mode"에 대한 HTTP 응답 상태 코드

상태 코드설명
200

OK

400

Bad request

401

Unauthorized

500

Internal error

"Set the status of maintenance mode"에 대한 코드 샘플

요청 예제

post/manage/v1/maintenance
curl -L \ -X POST \ -H "Accept: application/vnd.github+json" \ -u "api_key:your-password" \ http(s)://HOSTNAME/manage/v1/maintenance \ -d '{"enabled":true,"when":"2006-01-02T15:04:05+00:00","ip_exception_list":["192.168.1.0/24","1.1.1.1"]}'

Response

Status: 200
[ { "hostname": "ghe-local-primary", "uuid": "1b6cf518-f97c-11ed-8544-061d81f7eedb", "message": "maintenance mode scheduled with exception list [1.1.1.1]" } ]

Get the status of services running on all replica nodes

Gets the status of all services running on each replica node. This endpoint may take several seconds to reply.

"Get the status of services running on all replica nodes"에 대한 매개 변수

헤더
이름, Type, 설명
accept string

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

쿼리 매개 변수
이름, Type, 설명
uuid string

The UUID which identifies a node.

cluster_roles string

The cluster roles from the cluster configuration file.

"Get the status of services running on all replica nodes"에 대한 HTTP 응답 상태 코드

상태 코드설명
200

OK

401

Unauthorized

500

Internal error

"Get the status of services running on all replica nodes"에 대한 코드 샘플

요청 예제

get/manage/v1/replication/status
curl -L \ -H "Accept: application/vnd.github+json" \ -u "api_key:your-password" \ http(s)://HOSTNAME/manage/v1/replication/status

Response

Status: 200
{ "status": "OK", "nodes": [ { "hostname": "ghe-local-primary", "status": "OK", "services": [] }, { "hostname": "ghe-local-replica", "status": "OK", "services": [ { "status": "OK", "name": "redis", "details": "replication is in sync" }, { "status": "OK", "name": "elasticsearch", "details": "cluster is in sync (0 shards initializing, 0 shards unassigned)" }, { "status": "OK", "name": "git", "details": "replication is in sync" }, { "status": "OK", "name": "pages", "details": "replication is in sync" }, { "status": "OK", "name": "alambic", "details": "replication is in sync" }, { "status": "OK", "name": "git-hooks", "details": "replication is in sync" }, { "status": "OK", "name": "consul", "details": "replication is in sync" }, { "status": "OK", "name": "mysql", "details": "replication is in sync" } ] } ] }

Get all GHES release versions for all nodes

Gets the GitHub Enterprise Server release versions that are currently installed on all available nodes. For more information, see "GitHub Enterprise Server releases."

"Get all GHES release versions for all nodes"에 대한 매개 변수

헤더
이름, Type, 설명
accept string

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

쿼리 매개 변수
이름, Type, 설명
uuid string

The UUID which identifies a node.

cluster_roles string

The cluster roles from the cluster configuration file.

"Get all GHES release versions for all nodes"에 대한 HTTP 응답 상태 코드

상태 코드설명
200

OK

401

Unauthorized

500

Internal error

"Get all GHES release versions for all nodes"에 대한 코드 샘플

요청 예제

get/manage/v1/version
curl -L \ -H "Accept: application/vnd.github+json" \ -u "api_key:your-password" \ http(s)://HOSTNAME/manage/v1/version

Response

Status: 200
[ { "hostname": "ghe-local-primary", "version": { "version": "3.9.0", "platform": "azure", "build_id": "fc542058b5", "build_date": "2023-05-02" } } ]