GitCode Python SDK

gitcode_api provides synchronous and asynchronous httpx clients for the GitCode REST API. The public entry points are GitCode and AsyncGitCode.

Highlights

  • OpenAI-style resource groups such as client.repos and client.pulls.

  • Shared repository context via owner= and repo= on the client.

  • Lightweight response wrappers that expose JSON fields as attributes.

  • Matching sync and async resource surfaces.

  • Optional LLM tools: OpenAI and MCP adapters: OpenAI Chat Completions tool shape and MCP server helpers (FastMCP) for agent workflows.

  • Each resource group exposes a cached methods property (public callable names in stable SDK order) and method_signature(name) for a single method’s signature string, for runtime introspection.

Install

Install the package from PyPI:

pip install -U gitcode-api

For MCP / FastMCP helpers (Python 3.10+), install the optional extra:

pip install 'gitcode-api[mcp]'

For local development, install the project and optional documentation dependencies with uv:

uv sync
uv sync --group docs

Authentication

Pass api_key= directly or set GITCODE_ACCESS_TOKEN in your environment. If either value is stored in encrypted form, pass decrypt= so the client can decode it before authenticating.

export GITCODE_ACCESS_TOKEN="your-token"
from gitcode_api import GitCode
from trusted_library import decrypt_token

client = GitCode(api_key="encrypted-token", decrypt=decrypt_token)

Client lifecycle

Both clients accept shared defaults for owner, repo, base_url, and timeout.

GitCode manages a synchronous httpx.Client and supports close(). AsyncGitCode manages an asynchronous httpx.AsyncClient and supports await close().

Closing the SDK client also closes a supplied http_client instance.

from gitcode_api import GitCode

client = GitCode(owner="SushiNinja", repo="GitCode-API")
repo = client.repos.get()
print(repo.full_name)

Available resource groups

The SDK exposes these resource groups on both sync and async clients:

  • repos and contents

  • branches and commits

  • issues and pulls

  • labels, milestones, and members

  • releases, tags, and webhooks

  • users, orgs, search, and oauth

On any of the groups above, read client.<group>.methods for a stable tuple of public method names (excluding private helpers and the methods / method_signature utilities). Order follows the SDK’s segment-based sort key, not plain alphabetical order on each full name. The value is built once per resource instance. Use client.<group>.method_signature("method_name") for parameters and return type of one callable.

Next steps