GitHub
Copy page
GitHub App integration endpoints
Get GitHub App installation URL
Authorization
bearerAuth cookieAuth Bearer token authentication. Use this for API clients and service-to-service communication. Set the Authorization header to "Bearer ".
In: header
Session-based authentication using HTTP-only cookies. Cookies are automatically sent by browsers. For server-side requests, include cookies with names starting with "better-auth." in the Cookie header.
In: cookie
Path Parameters
Tenant identifier
Response Body
application/json
application/problem+json
application/problem+json
application/problem+json
application/problem+json
application/problem+json
application/problem+json
curl -X GET "https://api.pilot.inkeep.com/manage/tenants/tenant_123/github/install-url"{
"url": "http://example.com"
}{
"code": "bad_request",
"detail": "Bad Request",
"instance": "/conversations/123",
"requestId": "req_1234567890",
"status": 400,
"title": "Bad Request",
"error": {
"code": "bad_request",
"message": "Bad Request"
}
}{
"code": "unauthorized",
"detail": "Unauthorized",
"instance": "/conversations/123",
"requestId": "req_1234567890",
"status": 401,
"title": "Unauthorized",
"error": {
"code": "unauthorized",
"message": "Unauthorized"
}
}{
"code": "forbidden",
"detail": "Forbidden",
"instance": "/conversations/123",
"requestId": "req_1234567890",
"status": 403,
"title": "Forbidden",
"error": {
"code": "forbidden",
"message": "Forbidden"
}
}{
"code": "not_found",
"detail": "Not Found",
"instance": "/conversations/123",
"requestId": "req_1234567890",
"status": 404,
"title": "Not Found",
"error": {
"code": "not_found",
"message": "Not Found"
}
}{
"code": "unprocessable_entity",
"detail": "Unprocessable Entity",
"instance": "/conversations/123",
"requestId": "req_1234567890",
"status": 422,
"title": "Unprocessable Entity",
"error": {
"code": "unprocessable_entity",
"message": "Unprocessable Entity"
}
}{
"code": "internal_server_error",
"detail": "Internal Server Error",
"instance": "/conversations/123",
"requestId": "req_1234567890",
"status": 500,
"title": "Internal Server Error",
"error": {
"code": "internal_server_error",
"message": "Internal Server Error"
}
}List GitHub App installations
Authorization
bearerAuth cookieAuth Bearer token authentication. Use this for API clients and service-to-service communication. Set the Authorization header to "Bearer ".
In: header
Session-based authentication using HTTP-only cookies. Cookies are automatically sent by browsers. For server-side requests, include cookies with names starting with "better-auth." in the Cookie header.
In: cookie
Path Parameters
Tenant identifier
Query Parameters
Include disconnected installations in the response
Response Body
application/json
application/problem+json
application/problem+json
application/problem+json
application/problem+json
application/problem+json
application/problem+json
curl -X GET "https://api.pilot.inkeep.com/manage/tenants/tenant_123/github/installations"{
"installations": [
{
"accountId": "string",
"accountLogin": "string",
"accountType": "string",
"createdAt": "string",
"id": "string",
"installationId": "string",
"repositoryCount": 0,
"status": "string",
"updatedAt": "string"
}
]
}{
"code": "bad_request",
"detail": "Bad Request",
"instance": "/conversations/123",
"requestId": "req_1234567890",
"status": 400,
"title": "Bad Request",
"error": {
"code": "bad_request",
"message": "Bad Request"
}
}{
"code": "unauthorized",
"detail": "Unauthorized",
"instance": "/conversations/123",
"requestId": "req_1234567890",
"status": 401,
"title": "Unauthorized",
"error": {
"code": "unauthorized",
"message": "Unauthorized"
}
}{
"code": "forbidden",
"detail": "Forbidden",
"instance": "/conversations/123",
"requestId": "req_1234567890",
"status": 403,
"title": "Forbidden",
"error": {
"code": "forbidden",
"message": "Forbidden"
}
}{
"code": "not_found",
"detail": "Not Found",
"instance": "/conversations/123",
"requestId": "req_1234567890",
"status": 404,
"title": "Not Found",
"error": {
"code": "not_found",
"message": "Not Found"
}
}{
"code": "unprocessable_entity",
"detail": "Unprocessable Entity",
"instance": "/conversations/123",
"requestId": "req_1234567890",
"status": 422,
"title": "Unprocessable Entity",
"error": {
"code": "unprocessable_entity",
"message": "Unprocessable Entity"
}
}{
"code": "internal_server_error",
"detail": "Internal Server Error",
"instance": "/conversations/123",
"requestId": "req_1234567890",
"status": 500,
"title": "Internal Server Error",
"error": {
"code": "internal_server_error",
"message": "Internal Server Error"
}
}Get GitHub App installation details
Authorization
bearerAuth cookieAuth Bearer token authentication. Use this for API clients and service-to-service communication. Set the Authorization header to "Bearer ".
In: header
Session-based authentication using HTTP-only cookies. Cookies are automatically sent by browsers. For server-side requests, include cookies with names starting with "better-auth." in the Cookie header.
In: cookie
Path Parameters
Tenant identifier
The internal installation ID
Response Body
application/json
application/problem+json
application/problem+json
application/problem+json
application/problem+json
application/problem+json
application/problem+json
curl -X GET "https://api.pilot.inkeep.com/manage/tenants/tenant_123/github/installations/:installationId"{
"installation": {
"accountId": "string",
"accountLogin": "string",
"accountType": "string",
"createdAt": "string",
"id": "string",
"installationId": "string",
"status": "string",
"updatedAt": "string"
},
"repositories": [
{
"createdAt": "string",
"id": "string",
"installationDbId": "string",
"private": true,
"repositoryFullName": "string",
"repositoryId": "string",
"repositoryName": "string",
"updatedAt": "string"
}
]
}{
"code": "bad_request",
"detail": "Bad Request",
"instance": "/conversations/123",
"requestId": "req_1234567890",
"status": 400,
"title": "Bad Request",
"error": {
"code": "bad_request",
"message": "Bad Request"
}
}{
"code": "unauthorized",
"detail": "Unauthorized",
"instance": "/conversations/123",
"requestId": "req_1234567890",
"status": 401,
"title": "Unauthorized",
"error": {
"code": "unauthorized",
"message": "Unauthorized"
}
}{
"code": "forbidden",
"detail": "Forbidden",
"instance": "/conversations/123",
"requestId": "req_1234567890",
"status": 403,
"title": "Forbidden",
"error": {
"code": "forbidden",
"message": "Forbidden"
}
}{
"code": "not_found",
"detail": "Not Found",
"instance": "/conversations/123",
"requestId": "req_1234567890",
"status": 404,
"title": "Not Found",
"error": {
"code": "not_found",
"message": "Not Found"
}
}{
"code": "unprocessable_entity",
"detail": "Unprocessable Entity",
"instance": "/conversations/123",
"requestId": "req_1234567890",
"status": 422,
"title": "Unprocessable Entity",
"error": {
"code": "unprocessable_entity",
"message": "Unprocessable Entity"
}
}{
"code": "internal_server_error",
"detail": "Internal Server Error",
"instance": "/conversations/123",
"requestId": "req_1234567890",
"status": 500,
"title": "Internal Server Error",
"error": {
"code": "internal_server_error",
"message": "Internal Server Error"
}
}Delete a GitHub App installation permanently
Authorization
bearerAuth cookieAuth Bearer token authentication. Use this for API clients and service-to-service communication. Set the Authorization header to "Bearer ".
In: header
Session-based authentication using HTTP-only cookies. Cookies are automatically sent by browsers. For server-side requests, include cookies with names starting with "better-auth." in the Cookie header.
In: cookie
Path Parameters
Tenant identifier
The internal installation ID
Response Body
application/json
application/problem+json
application/problem+json
application/problem+json
application/problem+json
application/problem+json
application/problem+json
curl -X DELETE "https://api.pilot.inkeep.com/manage/tenants/tenant_123/github/installations/:installationId"{
"success": true
}{
"code": "bad_request",
"detail": "Bad Request",
"instance": "/conversations/123",
"requestId": "req_1234567890",
"status": 400,
"title": "Bad Request",
"error": {
"code": "bad_request",
"message": "Bad Request"
}
}{
"code": "unauthorized",
"detail": "Unauthorized",
"instance": "/conversations/123",
"requestId": "req_1234567890",
"status": 401,
"title": "Unauthorized",
"error": {
"code": "unauthorized",
"message": "Unauthorized"
}
}{
"code": "forbidden",
"detail": "Forbidden",
"instance": "/conversations/123",
"requestId": "req_1234567890",
"status": 403,
"title": "Forbidden",
"error": {
"code": "forbidden",
"message": "Forbidden"
}
}{
"code": "not_found",
"detail": "Not Found",
"instance": "/conversations/123",
"requestId": "req_1234567890",
"status": 404,
"title": "Not Found",
"error": {
"code": "not_found",
"message": "Not Found"
}
}{
"code": "unprocessable_entity",
"detail": "Unprocessable Entity",
"instance": "/conversations/123",
"requestId": "req_1234567890",
"status": 422,
"title": "Unprocessable Entity",
"error": {
"code": "unprocessable_entity",
"message": "Unprocessable Entity"
}
}{
"code": "internal_server_error",
"detail": "Internal Server Error",
"instance": "/conversations/123",
"requestId": "req_1234567890",
"status": 500,
"title": "Internal Server Error",
"error": {
"code": "internal_server_error",
"message": "Internal Server Error"
}
}Disconnect a GitHub App installation
Authorization
bearerAuth cookieAuth Bearer token authentication. Use this for API clients and service-to-service communication. Set the Authorization header to "Bearer ".
In: header
Session-based authentication using HTTP-only cookies. Cookies are automatically sent by browsers. For server-side requests, include cookies with names starting with "better-auth." in the Cookie header.
In: cookie
Path Parameters
Tenant identifier
The internal installation ID
Response Body
application/json
application/problem+json
application/problem+json
application/problem+json
application/problem+json
application/problem+json
curl -X POST "https://api.pilot.inkeep.com/manage/tenants/tenant_123/github/installations/:installationId/disconnect"{
"success": true
}{
"code": "bad_request",
"detail": "Bad Request",
"instance": "/conversations/123",
"requestId": "req_1234567890",
"status": 400,
"title": "Bad Request",
"error": {
"code": "bad_request",
"message": "Bad Request"
}
}{
"code": "unauthorized",
"detail": "Unauthorized",
"instance": "/conversations/123",
"requestId": "req_1234567890",
"status": 401,
"title": "Unauthorized",
"error": {
"code": "unauthorized",
"message": "Unauthorized"
}
}{
"code": "forbidden",
"detail": "Forbidden",
"instance": "/conversations/123",
"requestId": "req_1234567890",
"status": 403,
"title": "Forbidden",
"error": {
"code": "forbidden",
"message": "Forbidden"
}
}{
"code": "unprocessable_entity",
"detail": "Unprocessable Entity",
"instance": "/conversations/123",
"requestId": "req_1234567890",
"status": 422,
"title": "Unprocessable Entity",
"error": {
"code": "unprocessable_entity",
"message": "Unprocessable Entity"
}
}{
"code": "internal_server_error",
"detail": "Internal Server Error",
"instance": "/conversations/123",
"requestId": "req_1234567890",
"status": 500,
"title": "Internal Server Error",
"error": {
"code": "internal_server_error",
"message": "Internal Server Error"
}
}Reconnect a disconnected GitHub App installation
Authorization
bearerAuth cookieAuth Bearer token authentication. Use this for API clients and service-to-service communication. Set the Authorization header to "Bearer ".
In: header
Session-based authentication using HTTP-only cookies. Cookies are automatically sent by browsers. For server-side requests, include cookies with names starting with "better-auth." in the Cookie header.
In: cookie
Path Parameters
Tenant identifier
The internal installation ID
Response Body
application/json
application/problem+json
application/problem+json
application/problem+json
application/problem+json
application/problem+json
application/problem+json
curl -X POST "https://api.pilot.inkeep.com/manage/tenants/tenant_123/github/installations/:installationId/reconnect"{
"success": true,
"syncResult": {
"added": 0,
"removed": 0,
"updated": 0
}
}{
"code": "bad_request",
"detail": "Bad Request",
"instance": "/conversations/123",
"requestId": "req_1234567890",
"status": 400,
"title": "Bad Request",
"error": {
"code": "bad_request",
"message": "Bad Request"
}
}{
"code": "unauthorized",
"detail": "Unauthorized",
"instance": "/conversations/123",
"requestId": "req_1234567890",
"status": 401,
"title": "Unauthorized",
"error": {
"code": "unauthorized",
"message": "Unauthorized"
}
}{
"code": "forbidden",
"detail": "Forbidden",
"instance": "/conversations/123",
"requestId": "req_1234567890",
"status": 403,
"title": "Forbidden",
"error": {
"code": "forbidden",
"message": "Forbidden"
}
}{
"code": "unprocessable_entity",
"detail": "Unprocessable Entity",
"instance": "/conversations/123",
"requestId": "req_1234567890",
"status": 422,
"title": "Unprocessable Entity",
"error": {
"code": "unprocessable_entity",
"message": "Unprocessable Entity"
}
}{
"code": "internal_server_error",
"detail": "Internal Server Error",
"instance": "/conversations/123",
"requestId": "req_1234567890",
"status": 500,
"title": "Internal Server Error",
"error": {
"code": "internal_server_error",
"message": "Internal Server Error"
}
}{
"code": "service_unavailable",
"detail": "Failed to connect to GitHub API",
"error": {
"code": "service_unavailable",
"message": "string"
},
"status": 503,
"title": "Service Unavailable"
}Sync repositories for a GitHub App installation
Authorization
bearerAuth cookieAuth Bearer token authentication. Use this for API clients and service-to-service communication. Set the Authorization header to "Bearer ".
In: header
Session-based authentication using HTTP-only cookies. Cookies are automatically sent by browsers. For server-side requests, include cookies with names starting with "better-auth." in the Cookie header.
In: cookie
Path Parameters
Tenant identifier
The internal installation ID
Response Body
application/json
application/problem+json
application/problem+json
application/problem+json
application/problem+json
application/problem+json
application/problem+json
application/problem+json
curl -X POST "https://api.pilot.inkeep.com/manage/tenants/tenant_123/github/installations/:installationId/sync"{
"repositories": [
{
"createdAt": "string",
"id": "string",
"installationDbId": "string",
"private": true,
"repositoryFullName": "string",
"repositoryId": "string",
"repositoryName": "string",
"updatedAt": "string"
}
],
"syncResult": {
"added": 0,
"removed": 0,
"updated": 0
}
}{
"code": "bad_request",
"detail": "Bad Request",
"instance": "/conversations/123",
"requestId": "req_1234567890",
"status": 400,
"title": "Bad Request",
"error": {
"code": "bad_request",
"message": "Bad Request"
}
}{
"code": "unauthorized",
"detail": "Unauthorized",
"instance": "/conversations/123",
"requestId": "req_1234567890",
"status": 401,
"title": "Unauthorized",
"error": {
"code": "unauthorized",
"message": "Unauthorized"
}
}{
"code": "forbidden",
"detail": "Forbidden",
"instance": "/conversations/123",
"requestId": "req_1234567890",
"status": 403,
"title": "Forbidden",
"error": {
"code": "forbidden",
"message": "Forbidden"
}
}{
"code": "not_found",
"detail": "Not Found",
"instance": "/conversations/123",
"requestId": "req_1234567890",
"status": 404,
"title": "Not Found",
"error": {
"code": "not_found",
"message": "Not Found"
}
}{
"code": "unprocessable_entity",
"detail": "Unprocessable Entity",
"instance": "/conversations/123",
"requestId": "req_1234567890",
"status": 422,
"title": "Unprocessable Entity",
"error": {
"code": "unprocessable_entity",
"message": "Unprocessable Entity"
}
}{
"code": "internal_server_error",
"detail": "Internal Server Error",
"instance": "/conversations/123",
"requestId": "req_1234567890",
"status": 500,
"title": "Internal Server Error",
"error": {
"code": "internal_server_error",
"message": "Internal Server Error"
}
}{
"code": "service_unavailable",
"detail": "Failed to connect to GitHub API",
"error": {
"code": "service_unavailable",
"message": "string"
},
"status": 503,
"title": "Service Unavailable"
}