Connect a GitHub repository to a service
Sets a service's source to a GitHub repository and branch read through the App, after checking the installation can read it. With deployOnPush, pushes to the branch deploy the service. rootDir is the folder to build.
Needs services.update on the service (a grant on its project covers it). Available to MCP clients and the assistant.
seylo_session<token>application/json- body
serviceId*stringPanel-issued id.
^[a-z0-9]{16}$installationId*stringPanel-issued id.
^[a-z0-9]{16}$repo*string^[A-Za-z0-9_.-]+/[A-Za-z0-9_.-]+$branch*string^[^\s~^:?*\[\\]+$1 <= length <= 250rootDir?string^(?!/)(?!.*(^|/)\.\.(/|$)).*$length <= 300deployOnPush*booleanSuccess.
application/json- response
id*stringPanel-issued id.
^[a-z0-9]{16}$projectId*stringPanel-issued id.
^[a-z0-9]{16}$name*stringDNS-safe; the service's host name on the project network. Unique in its project.
^[a-z0-9]([a-z0-9-]*[a-z0-9])?$1 <= length <= 40kind*||||||||Compose members have kind app and a parentId naming their stack.
parentId*|nullstatus*string|string|string|string|string|string|string|string|string|stringsource*address*string|nullplacements*array<>cpuPercent*|nullmemoryBytes*|nullmemoryLimitBytes*|nullliveDeployment*|nulllastDeployedAt*|nullprotected*booleantemplateSlug*string|nullcreatedAt*stringdate-timeupdatedAt*stringdate-timestopped*booleangeneration*integer1 <= valuesourceConfig*|||||build*container*ports*array<>healthCheck*|nullcrashPolicy*restartDelaySeconds*integer0 <= valueresources*deploy*cron*|nullstickySessions*booleanentryNodeId*|nullnotes*stringmembers*array<>volumes*array<>curl -X POST 'https://example.com/api/v1/github.connectRepo' \ -H 'Content-Type: application/json' \ -d '{ "serviceId": "string", "installationId": "string", "repo": "string", "branch": "string", "deployOnPush": true}'{ "id": "string", "projectId": "string", "name": "string", "kind": "app", "parentId": "string", "status": "idle", "source": { "type": "github", "label": "string", "branch": "string", "builder": "railpack" }, "address": "string", "placements": [ { "nodeId": "string", "nodeName": "string", "replicas": 1 } ], "cpuPercent": 0, "memoryBytes": 0, "memoryLimitBytes": 0, "liveDeployment": { "id": "string", "label": "string", "createdAt": "2019-08-24T14:15:22Z" }, "lastDeployedAt": "2019-08-24T14:15:22Z", "protected": true, "templateSlug": "string", "createdAt": "2019-08-24T14:15:22Z", "updatedAt": "2019-08-24T14:15:22Z", "stopped": true, "generation": 1, "sourceConfig": { "type": "github", "installationId": "string", "repo": "string", "branch": "string", "deployOnPush": true }, "build": { "builder": "railpack", "contextPath": "string", "dockerfilePath": "string", "inlineDockerfile": "string", "targetStage": "string", "buildNodeId": "string", "startCommand": "string", "installCommand": "string", "buildCommand": "string" }, "container": { "command": [ "string" ], "entrypoint": [ "string" ], "workingDir": "string", "user": "string", "stopSignal": "string", "stopGraceSeconds": 1 }, "ports": [ { "containerPort": 1, "protocol": "tcp" } ], "healthCheck": { "probe": { "type": "tcp", "port": 1 }, "intervalSeconds": 1, "timeoutSeconds": 1, "startPeriodSeconds": 0, "failureThreshold": 1 }, "crashPolicy": { "restart": true, "stopAfterCrashes": 0 }, "restartDelaySeconds": 0, "resources": { "memoryLimitBytes": 6291456, "memoryReservationBytes": 0, "cpuWeight": 1, "pidsLimit": 16 }, "deploy": { "mode": "rolling", "healthTimeoutSeconds": 10 }, "cron": { "schedule": "stringstr", "timeZone": "string", "command": [ "string" ], "timeoutSeconds": 1, "concurrency": "forbid" }, "stickySessions": true, "entryNodeId": "string", "notes": "string", "members": [ { "id": "string", "name": "string", "status": "idle" } ], "volumes": [ { "id": "string", "name": "string", "mountPath": "string", "kind": "volume", "readOnly": true, "sharedWith": [ { "id": "string", "name": "string" } ] } ]}List a repository's branches GET
Lists the branches of a repository through the App, default branch first. Needs `services.create` on the project. Available to MCP clients and the assistant.
Forget the GitHub App POST
Removes the GitHub App's keys and installations from the panel. Services connected through it stop deploying on push until they are reconnected. The App itself must be deleted on github.com. Needs `github.manage`, which owners and admins hold. Not available to MCP clients or the assistant.