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.reposandclient.pulls.Issue and pull request template discovery on
client.issuesandclient.pulls:list_templates()/get_template()(and the pull request counterparts) walk the GitCode.gitcode/tree on the default branch and resolve templates across the main repository, the owner’s.gitcoderepository, and fork-parent repositories (see Client API Reference).Shared repository context via
owner=andrepo=on the client.Lightweight response wrappers that expose JSON fields as attributes.
as_dict()for turning response models into plain dictionaries—oneAPIObjectbecomes adict, alistof them becomeslist[dict]—in the same spirit asdataclasses.asdict()for structured objects (here backed byto_dict()), for example before JSON serialization.Matching sync and async resource surfaces.
Optional LLM tools: OpenAI, MCP, and openJiuwen adapters: OpenAI Chat Completions tool shape, MCP server helpers (FastMCP), and openJiuwen
LocalFunctionwhenopenjiuwenis installed.Each resource group exposes a cached
methodsproperty (public callable names in stable SDK order) andmethod_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 openJiuwen LocalFunction integration (see LLM tools: OpenAI, MCP, and openJiuwen), install
the upstream openjiuwen package separately (Python 3.11+):
pip install openjiuwen
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:
reposandcontentsbranchesandcommitsissuesandpullslabels,milestones, andmembersreleases,tags, andwebhooksusers,orgs,search, andoauth
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
See Quickstart for common usage patterns.
See CLI for the command-line entry point and examples.
See Client API Reference for the client-oriented chained API reference.
See LLM tools: OpenAI, MCP, and openJiuwen for OpenAI tool definitions, MCP (FastMCP), and openJiuwen usage.
See SDK Reference for the autodoc-generated module reference.