Git Code Controller
ACTIONGitHub repo controller — create branches, read project structure, read file contents, batch create/update/delete files and push to branches in a single commit. Used by the Orchestrator AI to code on any branch programmatically.
Endpoints
· 14GET/repo/branchesList all branches in the repository
Input Schema
{
"type": "object",
"required": [],
"properties": {
"repo": {
"type": "string",
"description": "Target repo in format 'owner/repo'. Defaults to GITHUB_REPO_OWNER/GITHUB_REPO_NAME if set."
}
}
}GET/repo/actions/logsGet build error logs from the latest failed workflow run for a branch
Input Schema
{
"type": "object",
"required": [],
"properties": {
"repo": {
"type": "string",
"description": "Target repo in format 'owner/repo'. Defaults to GITHUB_REPO_OWNER/GITHUB_REPO_NAME if set."
},
"branch": {
"type": "string",
"description": "Branch to check (default: main)"
}
}
}GET/repo/actions/statusCheck the latest GitHub Actions workflow run status for a branch
Input Schema
{
"type": "object",
"required": [],
"properties": {
"repo": {
"type": "string",
"description": "Target repo in format 'owner/repo'. Defaults to GITHUB_REPO_OWNER/GITHUB_REPO_NAME if set."
},
"branch": {
"type": "string",
"description": "Branch to check (default: main)"
}
}
}POST/repo/pull-requestCreate a GitHub Pull Request
Input Schema
{
"type": "object",
"required": [
"title",
"head",
"base"
],
"properties": {
"base": {
"type": "string",
"description": "The name of the branch you want the changes pulled into"
},
"body": {
"type": "string",
"description": "Pull request body in markdown"
},
"head": {
"type": "string",
"description": "The name of the branch where changes are implemented"
},
"repo": {
"type": "string",
"description": "Target repo in format 'owner/repo'. Defaults to GITHUB_REPO_OWNER/GITHUB_REPO_NAME if set."
},
"title": {
"type": "string",
"description": "Pull request title"
}
}
}GET/repo/fileRead a single file's contents from a branch, with optional line range filtering
Input Schema
{
"type": "object",
"required": [
"path"
],
"properties": {
"path": {
"type": "string",
"description": "File path (e.g., src/index.ts)"
},
"repo": {
"type": "string",
"description": "Target repo in format 'owner/repo'. Defaults to GITHUB_REPO_OWNER/GITHUB_REPO_NAME if set."
},
"lines": {
"type": "string",
"description": "Line range to return, e.g. '20-70', '20', '-50', '20-' (1-indexed, optional)"
},
"branch": {
"type": "string",
"description": "Branch to read from (default: main)"
}
}
}GET/repo/treeGet full file/folder tree of a branch
Input Schema
{
"type": "object",
"required": [],
"properties": {
"repo": {
"type": "string",
"description": "Target repo in format 'owner/repo'. Defaults to GITHUB_REPO_OWNER/GITHUB_REPO_NAME if set."
},
"branch": {
"type": "string",
"description": "The branch to inspect (default: main)"
}
}
}POST/repo/branchCreate a new branch from an existing branch
Input Schema
{
"type": "object",
"required": [
"branch"
],
"properties": {
"repo": {
"type": "string",
"description": "Target repo in format 'owner/repo'. Defaults to GITHUB_REPO_OWNER/GITHUB_REPO_NAME if set."
},
"branch": {
"type": "string",
"description": "Name of the new branch"
},
"fromBranch": {
"type": "string",
"description": "Source branch to fork from (default: main)"
}
}
}POST/repo/read-multipleRead multiple files at once from a branch, with optional per-file line ranges
Input Schema
{
"type": "object",
"required": [
"paths"
],
"properties": {
"repo": {
"type": "string",
"description": "Target repo in format 'owner/repo'. Defaults to GITHUB_REPO_OWNER/GITHUB_REPO_NAME if set."
},
"paths": {
"type": "array",
"items": {
"oneOf": [
{
"type": "string",
"description": "File path"
},
{
"type": "object",
"required": [
"path"
],
"properties": {
"path": {
"type": "string",
"description": "File path"
},
"lines": {
"type": "string",
"description": "Line range to return, e.g. '20-70', '20', '-50', '20-'"
}
}
}
]
},
"description": "List of file paths (strings) or objects with path and optional lines"
},
"branch": {
"type": "string",
"description": "Branch to read from (default: main)"
}
}
}POST/repo/commitBatch create, update, or delete multiple files in one commit
Input Schema
{
"type": "object",
"required": [
"branch",
"message",
"changes"
],
"properties": {
"repo": {
"type": "string",
"description": "Target repo in format 'owner/repo'. Defaults to GITHUB_REPO_OWNER/GITHUB_REPO_NAME if set."
},
"branch": {
"type": "string",
"description": "Target branch"
},
"changes": {
"type": "array",
"items": {
"type": "object",
"required": [
"action",
"path"
],
"properties": {
"path": {
"type": "string",
"description": "File path in repo"
},
"action": {
"enum": [
"create",
"update",
"delete"
],
"type": "string",
"description": "Type of change"
},
"content": {
"type": "string",
"description": "File content (required for create/update)"
}
}
},
"description": "Array of file changes"
},
"message": {
"type": "string",
"description": "Commit message"
}
}
}GET/repo/searchSearch GitHub code using the GitHub Code Search API. Returns matching files, paths, and optional text-match occurrences with position indices.
Input Schema
{
"type": "object",
"required": [
"q"
],
"properties": {
"q": {
"type": "string",
"description": "The search query (e.g., 'TODO', 'function getUsers')"
},
"org": {
"type": "string",
"description": "Scope to an organization (e.g., 'microsoft')"
},
"page": {
"type": "integer",
"description": "Page number (default: 1)"
},
"repo": {
"type": "string",
"description": "Target repo in format 'owner/repo'. Defaults to GITHUB_REPO_OWNER/GITHUB_REPO_NAME if set."
},
"user": {
"type": "string",
"description": "Scope to a user (e.g., 'torvalds')"
},
"per_page": {
"type": "integer",
"description": "Results per page (default: 30, max: 100)"
},
"text_match": {
"type": "boolean",
"description": "If true, include text-match metadata with occurrence indices and fragments (default: false)"
}
}
}GET/reposList all repositories the GITHUB_TOKEN has access to, sorted by most recently updated
Input Schema
{
"type": "object",
"required": [],
"properties": {}
}POST/repo/replace-linesReplace a range of lines in a file with new content. Fetches the file, splices the specified lines, and commits the change in one request.
Input Schema
{
"type": "object",
"required": [
"path",
"startLine",
"endLine",
"newContent"
],
"properties": {
"path": {
"type": "string",
"description": "File path in the repository (e.g., src/index.ts)"
},
"repo": {
"type": "string",
"description": "Target repo in format 'owner/repo'. Defaults to GITHUB_REPO_OWNER/GITHUB_REPO_NAME if set."
},
"branch": {
"type": "string",
"description": "Branch to operate on (default: main)"
},
"endLine": {
"type": "integer",
"description": "Last line to replace (1-indexed, inclusive)"
},
"message": {
"type": "string",
"description": "Commit message (defaults to 'Replace lines {startLine}-{endLine} in {path}')"
},
"startLine": {
"type": "integer",
"description": "First line to replace (1-indexed, inclusive)"
},
"newContent": {
"type": "string",
"description": "New content to replace the specified line range with"
}
}
}POST/repo/createCreate a new GitHub repository for the authenticated user or an organization
Input Schema
{
"type": "object",
"required": [
"name"
],
"properties": {
"org": {
"type": "string",
"description": "If provided, creates the repo under this organization instead of the authenticated user"
},
"name": {
"type": "string",
"description": "The name of the new repository"
},
"private": {
"type": "boolean",
"description": "Whether the repo should be private (default: false)"
},
"auto_init": {
"type": "boolean",
"description": "Whether to create an initial commit with a README (default: false)"
},
"description": {
"type": "string",
"description": "A short description of the repository"
}
}
}POST/repo/mergeMerge a GitHub Pull Request. Supports merge, squash, and rebase methods.
Input Schema
{
"type": "object",
"required": [
"pullNumber"
],
"properties": {
"repo": {
"type": "string",
"description": "Target repo in format 'owner/repo'. Defaults to GITHUB_REPO_OWNER/GITHUB_REPO_NAME if set."
},
"pullNumber": {
"type": "integer",
"description": "The pull request number to merge"
},
"commitTitle": {
"type": "string",
"description": "Optional merge commit title"
},
"mergeMethod": {
"enum": [
"merge",
"squash",
"rebase"
],
"type": "string",
"description": "Merge method: merge, squash, or rebase (default: merge)"
}
}
}Required Secrets
· 1Similar ACTION Pieces
Shared Terminal
Full-featured web terminal with Node.js, Python, Deno, git, and build tools — running in a Podman container with Ubuntu 24.04
Coolify Logs Watcher
Polls Coolify API for application logs, stores in SQLite, exposes search endpoints for support email triage. Monitors free-copier-py, free-copier-express, and free-copier-next runtime logs. Used by the Events pipeline (Sydney) to find relevant errors when drafting support responses.
Coverter
Converts HTML content to PDF using headless Chromium (Puppeteer). Accepts raw HTML or a URL, returns a downloadable PDF.