Esta versão do GitHub Enterprise Server será descontinuada em 2026-03-17. Nenhum lançamento de patch será feito, mesmo para questões críticas de segurança. Para obter melhor desempenho, segurança aprimorada e novos recursos, atualize para a última versão do GitHub Enterprise Server. Para obter ajuda com a atualização, entre em contato com o suporte do GitHub Enterprise.
Pontos de extremidade da API REST para o Console de Gerenciamento
Use a API REST para gerenciar a instalação do GitHub Enterprise Server.
Sobre os endpoints do console de gerenciamento
Toda a funcionalidade dos endpoints do Console de Gerenciamento foi adicionada aos endpoints do Manage GHES em GitHub Enterprise Server versão 3.12. Com a paridade de recursos alcançada, os endpoints da API da Console de Gerenciamento foram removidos na versão 3.15.
Para ajudar você a migrar, a tabela de mapeamento abaixo mostra a operação de Gerenciar GHES equivalente para cada operação do Console de Gerenciamento. Migre para os endpoints da API GHES Manage o mais rápido possível.
| Finalidade | Operação da API do Console de Gerenciamento | Gerenciar a operação da API do GHES |
|---|---|---|
| Obter o status da configuração | GET /setup/api/configcheck | GET /manage/v1/config/apply |
| Iniciar o processo de configuração | POST /setup/api/configure | POST /manage/v1/config/apply |
| Obter o status da manutenção | GET /setup/api/maintenance | GET /manage/v1/maintenance |
| Habilitar ou desabilitar o modo de manutenção | POST /setup/api/maintenance | POST /manage/v1/maintenance |
| Obtém configurações | GET /setup/api/settings | GET /manage/v1/config/settings |
| Definir configurações | PUT /setup/api/settings | PUT /manage/v1/config/settings |
| Obter todas as chaves SSH autorizadas | GET /setup/api/settings/authorized-keys | GET /manage/v1/access/ssh |
| Adicionar uma chave SSH autorizada | POST /setup/api/settings/authorized-keys | POST /manage/v1/access/ssh |
| Remover uma chave SSH autorizada | DELETE /setup/api/settings/authorized-keys | DELETE /manage/v1/access/ssh |
| Criar uma licença de GitHub | POST /setup/api/start | POST /manage/v1/config/init |
| Atualizar uma licença | POST /setup/api/upgrade | PUT /manage/v1/config/license |
Sobre o Console de Gerenciamento
É necessário definir explicitamente o número da porta ao fazer chamadas de API para o console de gerenciamento. Se o TLS estiver habilitado em sua empresa, o número da porta será 8443. Caso contrário, o número da porta será 8080.
Se não for possível fornecer um número de porta, será preciso configurar sua ferramenta para seguir automaticamente os redirecionamentos.
Talvez você também precise adicionar o sinalizador -k ao usar curl, já que GitHub usa um certificado autoassinado antes de você adicionar seu próprio certificado TLS.
Autenticação como administrador do site raiz
É necessário transmitir sua senha do administrador do site raiz como um token de autenticação para cada ponto de extremidade nesta categoria, exceto para Criar uma licença do GitHub.
Use o parâmetro api_key para enviar este token com cada solicitação. Por exemplo:
curl -L 'https://HOSTNAME:ADMIN-PORT/setup/api?api_key=YOUR_PASSWORD'
Você também pode usar a autenticação HTTP padrão para enviar esse token. Por exemplo:
curl -L -u "api_key:YOUR_PASSWORD" 'https://HOSTNAME:ADMIN-PORT/setup/api'
Autenticação como usuário Console de Gerenciamento
[As contas de usuário do Console de Gerenciamento](/admin/configuration/administering-your-instance-from-the-management-console/managing-access-to-the-management-console#management-console-user) também podem se autenticar para acessar este endpoint.
Para autenticar com a senha de uma conta de usuário do Console de Gerenciamento, use a autenticação HTTP padrão. No exemplo a seguir, substitua YOUR_USER_NAME e YOUR_PASSWORD pelo nome de usuário e senha da conta.
curl -L -u "YOUR_USER_NAME:YOUR_PASSWORD" 'https://HOSTNAME:ADMIN-PORT/setup/api'
Get the configuration status
This endpoint allows you to check the status of the most recent configuration process:
Note that you may need to wait several seconds after you start a process before you can check its status.
The different statuses are:
| Status | Description |
|---|---|
PENDING | The job has not started yet |
CONFIGURING | The job is running |
DONE | The job has finished correctly |
FAILED | The job has finished unexpectedly |
Códigos de status de resposta HTTP para "Get the configuration status"
| Código de status | Descrição |
|---|---|
200 | OK |
401 | Unauthorized |
Exemplos de código para "Get the configuration status"
Exemplo de solicitação
curl -L \
-u "api_key:your-password" \
http(s)://HOSTNAME/setup/api/configcheckResponse
Status: 200{
"status": "running",
"progress": [
{
"status": "DONE",
"key": "Appliance core components"
},
{
"status": "DONE",
"key": "GitHub utilities"
},
{
"status": "DONE",
"key": "GitHub applications"
},
{
"status": "CONFIGURING",
"key": "GitHub services"
},
{
"status": "PENDING",
"key": "Reloading appliance services"
}
]
}Start a configuration process
This endpoint allows you to start a configuration process at any time for your updated settings to take effect:
Códigos de status de resposta HTTP para "Start a configuration process"
| Código de status | Descrição |
|---|---|
202 | Accepted |
401 | Unauthorized |
Exemplos de código para "Start a configuration process"
Exemplo de solicitação
curl -L \
-X POST \
-u "api_key:your-password" \
http(s)://HOSTNAME/setup/api/configureResponse
Status: 202Get the maintenance status
Check your installation's maintenance status:
Códigos de status de resposta HTTP para "Get the maintenance status"
| Código de status | Descrição |
|---|---|
200 | OK |
401 | Unauthorized |
Exemplos de código para "Get the maintenance status"
Exemplo de solicitação
curl -L \
-u "api_key:your-password" \
http(s)://HOSTNAME/setup/api/maintenanceResponse
Status: 200{
"status": "scheduled",
"scheduled_time": "Tuesday, January 22 at 15:34 -0800",
"connection_services": [
{
"name": "git operations",
"number": 0
},
{
"name": "mysql queries",
"number": 233
},
{
"name": "aqueduct jobs",
"number": 34
},
{
"name": "resque jobs",
"number": 54
}
]
}Enable or disable maintenance mode
Note
The request body for this operation must be submitted as application/x-www-form-urlencoded data. You can submit a parameter value as a string, or you can use a tool such as curl to submit a parameter value as the contents of a text file. For more information, see the curl documentation.
Parâmetros para "Enable or disable maintenance mode"
| Nome, Tipo, Descrição |
|---|
maintenance string ObrigatórioA JSON string with the attributes The possible values for The possible values for |
Códigos de status de resposta HTTP para "Enable or disable maintenance mode"
| Código de status | Descrição |
|---|---|
200 | OK |
401 | Unauthorized |
Exemplos de código para "Enable or disable maintenance mode"
Exemplo de solicitação
curl -L \
-X POST \
-u "api_key:your-password" \
http(s)://HOSTNAME/setup/api/maintenance \
--data-urlencode 'maintenance={"enabled":true, "when":"now"}'Response
Status: 200{
"status": "scheduled",
"scheduled_time": "Tuesday, January 22 at 15:34 -0800",
"connection_services": [
{
"name": "git operations",
"number": 0
},
{
"name": "mysql queries",
"number": 233
},
{
"name": "aqueduct jobs",
"number": 34
},
{
"name": "resque jobs",
"number": 54
}
]
}Get settings
Gets the settings for your instance. To change settings, see the Set settings endpoint.
Note
You cannot retrieve the management console password with the Enterprise administration API.
Códigos de status de resposta HTTP para "Get settings"
| Código de status | Descrição |
|---|---|
200 | OK |
401 | Unauthorized |
Exemplos de código para "Get settings"
Exemplo de solicitação
curl -L \
-u "api_key:your-password" \
http(s)://HOSTNAME/setup/api/settingsResponse
Status: 200{
"enterprise": {
"private_mode": false,
"public_pages": false,
"subdomain_isolation": true,
"signup_enabled": false,
"github_hostname": "ghe.local",
"identicons_host": "dotcom",
"http_proxy": null,
"auth_mode": "default",
"expire_sessions": false,
"admin_password": null,
"configuration_id": 1401777404,
"configuration_run_count": 4,
"avatar": {
"enabled": false,
"uri": ""
},
"customer": {
"name": "GitHub",
"email": "stannis@themannis.biz",
"uuid": "af6cac80-e4e1-012e-d822-1231380e52e9",
"secret_key_data": "-----BEGIN PGP PRIVATE KEY BLOCK-----\nVersion: GnuPG v1.4.10 (GNU/Linux)\n\nlQcYBE5TCgsBEACk4yHpUcapplebaumBMXYMiLF+nCQ0lxpx...\n-----END PGP PRIVATE KEY BLOCK-----\n",
"public_key_data": "-----BEGIN PGP PUBLIC KEY BLOCK-----\nVersion: GnuPG v1.4.10 (GNU/Linux)\n\nmI0ETqzZYgEEALSe6snowdenXyqvLfSQ34HWD6C7....\n-----END PGP PUBLIC KEY BLOCK-----\n"
},
"license": {
"seats": 0,
"evaluation": false,
"perpetual": false,
"unlimited_seating": true,
"support_key": "ssh-rsa AAAAB3N....",
"ssh_allowed": true,
"cluster_support": false,
"expire_at": "2016-04-27T00:00:00-07:00"
},
"github_ssl": {
"enabled": false,
"cert": null,
"key": null
},
"ldap": {
"host": null,
"port": 0,
"base": [],
"uid": null,
"bind_dn": null,
"password": null,
"method": "Plain",
"search_strategy": "detect",
"user_groups": [],
"admin_group": null,
"virtual_attribute_enabled": false,
"recursive_group_search": false,
"posix_support": true,
"user_sync_emails": false,
"user_sync_keys": false,
"user_sync_interval": 4,
"team_sync_interval": 4,
"sync_enabled": false,
"reconciliation": {
"user": null,
"org": null
},
"profile": {
"uid": "uid",
"name": null,
"mail": null,
"key": null
}
},
"cas": {
"url": null
},
"saml": {
"sso_url": null,
"certificate": null,
"certificate_path": null,
"issuer": null,
"idp_initiated_sso": false,
"disable_admin_demote": false
},
"github_oauth": {
"client_id": "12313412",
"client_secret": "kj123131132",
"organization_name": "Homestar Runners",
"organization_team": "homestarrunners/characters"
},
"smtp": {
"enabled": true,
"address": "smtp.example.com",
"authentication": "plain",
"port": "1234",
"domain": "blah",
"username": "foo",
"user_name": "mr_foo",
"enable_starttls_auto": true,
"password": "bar",
"discard-to-noreply-address": true,
"support_address": "enterprise@github.com",
"support_address_type": "email",
"noreply_address": "noreply@github.com"
},
"ntp": {
"primary_server": "0.pool.ntp.org",
"secondary_server": "1.pool.ntp.org"
},
"timezone": null,
"snmp": {
"enabled": false,
"community": ""
},
"syslog": {
"enabled": false,
"server": null,
"protocol_name": "udp"
},
"assets": null,
"pages": {
"enabled": true
},
"collectd": {
"enabled": false,
"server": null,
"port": 0,
"encryption": null,
"username": null,
"password": null
},
"mapping": {
"enabled": true,
"tileserver": null,
"basemap": "company.map-qsz2zrvs",
"token": null
},
"load_balancer": null
},
"run_list": [
"recipe[enterprise-configure]"
]
}Set settings
Applies settings on your instance. For a list of the available settings, see the Get settings endpoint.
Notes:
- The request body for this operation must be submitted as
application/x-www-form-urlencodeddata. You can submit a parameter value as a string, or you can use a tool such ascurlto submit a parameter value as the contents of a text file. For more information, see thecurldocumentation. - You cannot set the management console password with the Enterprise administration API. Use the
ghe-set-passwordutility to change the management console password. For more information, see "Command-line utilities."
Parâmetros para "Set settings"
| Nome, Tipo, Descrição |
|---|
settings string ObrigatórioA JSON string with the new settings. Note that you only need to pass the specific settings you want to modify. For a list of the available settings, see the Get settings endpoint. |
Códigos de status de resposta HTTP para "Set settings"
| Código de status | Descrição |
|---|---|
204 | No Content |
401 | Unauthorized |
Exemplos de código para "Set settings"
Exemplo de solicitação
curl -L \
-X PUT \
-u "api_key:your-password" \
http(s)://HOSTNAME/setup/api/settings \
--data-urlencode 'settings={ "enterprise": { "public_pages": true }}'Response
Status: 204Get all authorized SSH keys
Códigos de status de resposta HTTP para "Get all authorized SSH keys"
| Código de status | Descrição |
|---|---|
200 | OK |
401 | Unauthorized |
Exemplos de código para "Get all authorized SSH keys"
Exemplo de solicitação
curl -L \
-u "api_key:your-password" \
http(s)://HOSTNAME/setup/api/settings/authorized-keysResponse
Status: 200[
{
"key": "ssh-rsa AAAAB3NzaC1yc2EAAAAB...",
"pretty-print": "ssh-rsa 01:14:0f:f2:0f:e2:fe:e8:f4:72:62:af:75:f7:1a:88:3e:04:92:64"
},
{
"key": "ssh-rsa AAAAB3NzaC1yc2EAAAAB...",
"pretty-print": "ssh-rsa 01:14:0f:f2:0f:e2:fe:e8:f4:72:62:af:75:f7:1a:88:3e:04:92:64"
},
{
"key": "ssh-rsa AAAAB3NzaC1yc2EAAAAB...",
"pretty-print": "ssh-rsa 01:14:0f:f2:0f:e2:fe:e8:f4:72:62:af:75:f7:1a:88:3e:04:92:64"
}
]Add an authorized SSH key
Note: The request body for this operation must be submitted as application/x-www-form-urlencoded data. You can submit a parameter value as a string, or you can use a tool such as curl to submit a parameter value as the contents of a text file. For more information, see the curl documentation.
Parâmetros para "Add an authorized SSH key"
| Nome, Tipo, Descrição |
|---|
authorized_key string ObrigatórioThe public SSH key. |
Códigos de status de resposta HTTP para "Add an authorized SSH key"
| Código de status | Descrição |
|---|---|
201 | Created |
401 | Unauthorized |
Exemplos de código para "Add an authorized SSH key"
Exemplo de solicitação
curl -L \
-X POST \
-u "api_key:your-password" \
http(s)://HOSTNAME/setup/api/settings/authorized-keys \
--data-urlencode 'authorized_key=ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQCssTL/Vtu/ODLTj0VtZoRAbvf7uiv5997GyDq0MoAZUjb5jmA5wYe2/wF6sFuhiZTnZoF1ZtCHunPp0hM/GHrn6VySBhNncx14YO8FPt1CIhEeRMSEjUK9cY3xAbS365oXY8vnUHJsS9+1tr/2bx/+4NJfcUt/Ezf1OR/0LStQXw=='Response
Status: 201[
{
"key": "ssh-rsa AAAAB3NzaC1yc2EAAAAB...",
"pretty-print": "ssh-rsa 01:14:0f:f2:0f:e2:fe:e8:f4:72:62:af:75:f7:1a:88:3e:04:92:64"
},
{
"key": "ssh-rsa AAAAB3NzaC1yc2EAAAAB...",
"pretty-print": "ssh-rsa 01:14:0f:f2:0f:e2:fe:e8:f4:72:62:af:75:f7:1a:88:3e:04:92:64"
},
{
"key": "ssh-rsa AAAAB3NzaC1yc2EAAAAB...",
"pretty-print": "ssh-rsa 01:14:0f:f2:0f:e2:fe:e8:f4:72:62:af:75:f7:1a:88:3e:04:92:64"
}
]Remove an authorized SSH key
Note: The request body for this operation must be submitted as application/x-www-form-urlencoded data. You can submit a parameter value as a string, or you can use a tool such as curl to submit a parameter value as the contents of a text file. For more information, see the curl documentation.
Parâmetros para "Remove an authorized SSH key"
| Nome, Tipo, Descrição |
|---|
authorized_key string ObrigatórioThe public SSH key. |
Códigos de status de resposta HTTP para "Remove an authorized SSH key"
| Código de status | Descrição |
|---|---|
200 | OK |
401 | Unauthorized |
Exemplos de código para "Remove an authorized SSH key"
Exemplo de solicitação
curl -L \
-X DELETE \
-u "api_key:your-password" \
http(s)://HOSTNAME/setup/api/settings/authorized-keys \
--data-urlencode 'authorized_key=ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQCssTL/Vtu/ODLTj0VtZoRAbvf7uiv5997GyDq0MoAZUjb5jmA5wYe2/wF6sFuhiZTnZoF1ZtCHunPp0hM/GHrn6VySBhNncx14YO8FPt1CIhEeRMSEjUK9cY3xAbS365oXY8vnUHJsS9+1tr/2bx/+4NJfcUt/Ezf1OR/0LStQXw=='Response
Status: 200[
{
"key": "ssh-rsa AAAAB3NzaC1yc2EAAAAB...",
"pretty-print": "ssh-rsa 01:14:0f:f2:0f:e2:fe:e8:f4:72:62:af:75:f7:1a:88:3e:04:92:64"
},
{
"key": "ssh-rsa AAAAB3NzaC1yc2EAAAAB...",
"pretty-print": "ssh-rsa 01:14:0f:f2:0f:e2:fe:e8:f4:72:62:af:75:f7:1a:88:3e:04:92:64"
},
{
"key": "ssh-rsa AAAAB3NzaC1yc2EAAAAB...",
"pretty-print": "ssh-rsa 01:14:0f:f2:0f:e2:fe:e8:f4:72:62:af:75:f7:1a:88:3e:04:92:64"
}
]Create a GitHub license
When you boot a GitHub instance for the first time, you can use the following endpoint to upload a license.
Note that you need to POST to /setup/api/configure to start the actual configuration process.
When using this endpoint, your GitHub instance must have a password set. This can be accomplished two ways:
- If you're working directly with the API before accessing the web interface, you must pass in the password parameter to set your password.
- If you set up your instance via the web interface before accessing the API, your calls to this endpoint do not need the password parameter.
Note
The request body for this operation must be submitted as multipart/form-data data. You can can reference the license file by prefixing the filename with the @ symbol using curl. For more information, see the curl documentation.
Parâmetros para "Create a GitHub license"
| Nome, Tipo, Descrição |
|---|
license string ObrigatórioThe content of your .ghl license file. |
password string You must provide a password only if you are uploading your license for the first time. If you previously set a password through the web interface, you don't need this parameter. |
settings string An optional JSON string containing the installation settings. For a list of the available settings, see the Get settings endpoint. |
Códigos de status de resposta HTTP para "Create a GitHub license"
| Código de status | Descrição |
|---|---|
202 | Accepted |
401 | Unauthorized |
Exemplos de código para "Create a GitHub license"
Exemplo de solicitação
curl -L \
-X POST \
-u "api_key:your-password" \
-H "Content-Type: multipart/form-data" \
http(s)://HOSTNAME/setup/api/start \
--form 'license=@enterprise.ghl' --form 'password=secret'Response
Status: 202Upgrade a license
This API upgrades your license and also triggers the configuration process.
Note
The request body for this operation must be submitted as multipart/form-data data. You can can reference the license file by prefixing the filename with the @ symbol using curl. For more information, see the curl documentation.
Parâmetros para "Upgrade a license"
| Nome, Tipo, Descrição |
|---|
license string The content of your new .ghl license file. |
Códigos de status de resposta HTTP para "Upgrade a license"
| Código de status | Descrição |
|---|---|
202 | Accepted |
401 | Unauthorized |
Exemplos de código para "Upgrade a license"
Exemplo de solicitação
curl -L \
-X POST \
-u "api_key:your-password" \
-H "Content-Type: multipart/form-data" \
http(s)://HOSTNAME/setup/api/upgrade \
--form 'license=@enterprise.ghl'Response
Status: 202