Client API Reference

This reference is organized by the chained SDK entrypoints users call at runtime, such as GitCode.branches.list() and AsyncGitCode.pulls.list().

GitCode and AsyncGitCode are context managers: use with GitCode(...) and async with AsyncGitCode(...) so the underlying httpx client is closed when the block ends. The same applies to SyncAPIClient and AsyncAPIClient; see Quickstart for examples. Closing the SDK client also closes a supplied http_client instance.

Default TLS verification for the built-in httpx client (including GITCODE_CA_BUNDLE / REQUESTS_CA_BUNDLE env variables) is described under TLS and certificate verification in Quickstart. Pass http_client when you need different TLS settings.

Resource introspection

Every chained resource on GitCode and AsyncGitCode (for example client.repos or client.pulls) exposes the methods property: a tuple of public callable names in stable SDK-defined order. Private names (leading _), the methods and method_signature() helpers, and non-callables are omitted. The tuple is cached on first access for the lifetime of that resource object.

The same objects provide method_signature() (also on AsyncResource), which takes a method name and returns that name plus the formatted inspect.signature string (cached per name, annotations shortened by stripping the internal gitcode_api._models. prefix).

Utilities

Helpers re-exported from the top-level gitcode_api package (alongside GitCode / AsyncGitCode).

as_dict() converts typed response wrappers to plain mappings: one APIObject becomes a dict, a list of them becomes list[dict]. It is similar in purpose to dataclasses.asdict() for turning structured instances into serializable data, using to_dict() under the hood.

as_dict(data: APIObject, deep_copy: bool = False) Dict[str, Any]
as_dict(data: List[APIObject], deep_copy: bool = False) List[Dict[str, Any]]

Convert one APIObject to a plain dict, or several to a list of dicts.

Similar to dataclasses.asdict(). Input is converted with to_dict(). When deep_copy is true, each mapping is copied with copy.deepcopy().

Parameters:
  • data – A single response model or a list of them.

  • deep_copy – When true, return deep-copied dicts.

Returns:

A dict for a single input, or a list of dicts for a list input.

Issue and pull request templates

IssuesResource.list_templates, IssuesResource.get_template, PullsResource.list_templates, and PullsResource.get_template (and the Async* equivalents) help you read GitCode active templates from the repository default branch via the Contents and Raw APIs.

list_templates returns RepositoryGitCodeTemplate rows: each row includes path, sha, and the template_owner / template_repo of the repository where that file was found. get_template returns the decoded file body as str; pass owner= and repo= from the row when they differ from the client’s default context (for example when the template was resolved from another repository).

Resolution (first source with any matching template wins). The SDK builds an ordered list of (owner, repo) pairs, then walks GET .../contents/.gitcode for each until it finds paths that match the template naming rules:

  1. The client’s default repository (owner / repo from the call or client).

  2. The owner’s dedicated template repository: (owner, ".gitcode").

  3. For every candidate in that list, GET /repos/{owner}/{repo} is used; when fork is true, the parent’s full_name is split into (parent_owner, parent_repo) and both (parent_owner, parent_repo) and (parent_owner, ".gitcode") are appended if not already present. New pairs are processed the same way (so a forked owner/.gitcode repo can still pull in its upstream). The walk stops at a bounded number of candidates.

Version 1.2.19: Now also supporting GitHub-mirrored repos with a .github/ folder.

Path filters. Issue templates match repository-relative paths under .gitcode/ whose names start with ISSUE_TEMPLATE (case-insensitive) and end with .md, .markdown, .yml, or .yaml. Pull request templates use the PULL_REQUEST_TEMPLATE prefix with the same extension set.

Runnable examples: examples/get_issue_templates.py and examples/get_pull_request_templates.py.

Synchronous client

class GitCode(*, api_key: str | None = None, owner: str | None = None, repo: str | None = None, base_url: str = 'https://api.gitcode.com/api/v5', timeout: float | None = None, http_client: Client | None = None, decrypt: Callable | None = None)

Bases: SyncAPIClient

Synchronous GitCode API client.

Parameters:
  • api_key – Personal access token used for GitCode API requests.

  • owner – Default repository owner used by repository-scoped helpers.

  • repo – Default repository name used by repository-scoped helpers.

  • base_url – Base URL for the GitCode REST API.

  • timeout – Request timeout in seconds.

  • http_client – Optional pre-configured httpx.Client instance.

  • decrypt – Optional decryption function for encrypted access token.

Create a synchronous client and attach resource groups.

repos: ReposResource

Repository endpoints exposed as client.repos.

contents: RepoContentsResource

Repository content endpoints exposed as client.contents.

branches: BranchesResource

Repository branch endpoints exposed as client.branches.

commits: CommitsResource

Repository commit endpoints exposed as client.commits.

close() None

Close the underlying HTTP client and clear cache for garbage collection.

request(method: str, path: str, *, params: Dict[str, Any] | None = None, json: Any = None, data: Dict[str, Any] | None = None, headers: Dict[str, str] | None = None, raw: bool = False) Any

Send an HTTP request to the GitCode API and parse the response.

Parameters:
  • method – HTTP method such as "GET" or "POST".

  • path – Relative API path or absolute URL.

  • params – Optional query parameters.

  • json – Optional JSON request body.

  • data – Optional form payload.

  • headers – Optional extra HTTP headers.

  • raw – When True, return response bytes instead of parsed JSON.

Returns:

Parsed JSON payload, raw bytes, text, or None.

issues: IssuesResource

Issue endpoints exposed as client.issues.

pulls: PullsResource

Pull request endpoints exposed as client.pulls.

labels: LabelsResource

Label endpoints exposed as client.labels.

milestones: MilestonesResource

Milestone endpoints exposed as client.milestones.

members: MembersResource

Repository member endpoints exposed as client.members.

releases: ReleasesResource

Release endpoints exposed as client.releases.

tags: TagsResource

Tag endpoints exposed as client.tags.

webhooks: WebhooksResource

Webhook endpoints exposed as client.webhooks.

users: UsersResource

User endpoints exposed as client.users.

orgs: OrgsResource

Organization endpoints exposed as client.orgs.

search: SearchResource

Search endpoints exposed as client.search.

oauth: OAuthResource

OAuth helper endpoints exposed as client.oauth.

Repository resources

GitCode.repos

GitCode.repos: ReposResource

Repository endpoints exposed as client.repos.

GitCode.repos.get(*, owner: str | None = None, repo: str | None = None) Repository

Get a repository.

Parameters:
  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository name. Uses the client default when omitted.

Returns:

Repository metadata.

GitCode.repos.list_user(*, visibility: str | None = None, affiliation: str | None = None, type: str | None = None, sort: str | None = None, direction: str | None = None, q: str | None = None, page: int | None = None, per_page: int | None = None) List[Repository]

List repositories visible to the authenticated user.

Parameters:
  • visibility – Visibility filter such as public, private, or all.

  • affiliation – Ownership filter accepted by the REST API.

  • type – Repository type filter.

  • sort – Sort field such as created or full_name.

  • direction – Sort direction.

  • q – Optional keyword filter.

  • page – Page number.

  • per_page – Page size.

Returns:

Matching repositories.

GitCode.repos.list_for_owner(*, owner: str, type: str | None = None, sort: str | None = None, direction: str | None = None, page: int | None = None, per_page: int | None = None) List[Repository]

List public repositories for a user or owner path.

Parameters:
  • owner – Repository owner path or username.

  • type – Repository type filter.

  • sort – Sort field.

  • direction – Sort direction.

  • page – Page number.

  • per_page – Page size.

Returns:

Matching repositories.

GitCode.repos.create_personal(*, name: str, description: str | None = None, path: str | None = None, private: bool | None = None, auto_init: bool | None = None, has_issues: bool | None = None, has_wiki: bool | None = None, default_branch: str | None = None, gitignore_template: str | None = None, license_template: str | None = None) Repository

Create a repository for the authenticated user.

Parameters:
  • name – Repository name.

  • description – Repository description.

  • path – Optional repository path.

  • private – Whether the repository should be private.

  • auto_init – Whether to initialize the repository with a README.

  • has_issues – Whether issues are enabled.

  • has_wiki – Whether wiki support is enabled.

  • default_branch – Default branch name when initializing.

  • gitignore_template – Optional gitignore template.

  • license_template – Optional license template.

Returns:

Created repository metadata.

GitCode.repos.create_for_org(*, org: str, name: str, description: str | None = None, homepage: str | None = None, path: str | None = None, private: bool | None = None, public: int | None = None, auto_init: bool | None = None, has_issues: bool | None = None, has_wiki: bool | None = None, can_comment: bool | None = None, default_branch: str | None = None, gitignore_template: str | None = None, license_template: str | None = None) Repository

Create a repository under an organization.

Parameters:
  • org – Organization path or login.

  • name – Repository name.

  • description – Repository description.

  • homepage – Repository homepage URL.

  • path – Optional repository path.

  • private – Whether the repository should be private.

  • public – Visibility mode used by the GitCode API.

  • auto_init – Whether to initialize the repository with a README.

  • has_issues – Whether issues are enabled.

  • has_wiki – Whether wiki support is enabled.

  • can_comment – Whether comments are enabled.

  • default_branch – Default branch name when initializing.

  • gitignore_template – Optional gitignore template.

  • license_template – Optional license template.

Returns:

Created repository metadata.

GitCode.repos.update(*, owner: str | None = None, repo: str | None = None, **changes) Repository

Update repository metadata.

Parameters:
  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository name. Uses the client default when omitted.

  • changes – Repository fields accepted by the update endpoint.

Returns:

Updated repository metadata.

GitCode.repos.delete(*, owner: str | None = None, repo: str | None = None) None

Delete a repository.

Parameters:
  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository name. Uses the client default when omitted.

GitCode.repos.fork(*, owner: str | None = None, repo: str | None = None, namespace: str | None = None, path: str | None = None, name: str | None = None) Repository

Fork a repository.

Parameters:
  • owner – Source repository owner path.

  • repo – Source repository name.

  • namespace – Optional destination namespace.

  • path – Optional destination repository path.

  • name – Optional destination repository name.

Returns:

Forked repository metadata.

GitCode.repos.list_forks(*, owner: str | None = None, repo: str | None = None, sort: str | None = None, page: int | None = None, per_page: int | None = None) List[Repository]

List forks of a repository.

Parameters:
  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository name. Uses the client default when omitted.

  • sort – Optional sort field.

  • page – Page number.

  • per_page – Page size.

Returns:

Fork repositories.

GitCode.repos.list_contributors(*, owner: str | None = None, repo: str | None = None, page: int | None = None, per_page: int | None = None) List[Contributor]

List repository contributors.

Parameters:
  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository name. Uses the client default when omitted.

  • page – Page number.

  • per_page – Page size.

Returns:

Contributors for the repository.

GitCode.repos.list_languages(*, owner: str | None = None, repo: str | None = None) Dict[str, int]

List language statistics for a repository.

Parameters:
  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository name. Uses the client default when omitted.

Returns:

Mapping of language names to byte counts.

GitCode.repos.list_stargazers(*, owner: str | None = None, repo: str | None = None, page: int | None = None, per_page: int | None = None) List[UserSummary]

List users who starred a repository.

Parameters:
  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository name. Uses the client default when omitted.

  • page – Page number.

  • per_page – Page size.

Returns:

Users who starred the repository.

GitCode.repos.list_subscribers(*, owner: str | None = None, repo: str | None = None, page: int | None = None, per_page: int | None = None) List[UserSummary]

List users watching a repository.

Parameters:
  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository name. Uses the client default when omitted.

  • page – Page number.

  • per_page – Page size.

Returns:

Subscribers for the repository.

GitCode.repos.update_module_settings(*, owner: str | None = None, repo: str | None = None, **settings) ApiStatusResponse

Update repository module settings.

Parameters:
  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository name. Uses the client default when omitted.

  • settings – Module settings accepted by the GitCode API.

Returns:

API response payload.

GitCode.repos.update_reviewer_settings(*, owner: str | None = None, repo: str | None = None, **settings) RepositoryReviewerSettingsUpdate

Update repository reviewer settings.

Parameters:
  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository name. Uses the client default when omitted.

  • settings – Reviewer settings accepted by the GitCode API.

Returns:

API response payload.

GitCode.repos.set_org_repo_status(*, org: str, repo: str, **payload) ApiStatusResponse

Update organization repository status metadata.

Parameters:
  • org – Organization path.

  • repo – Repository path.

  • payload – Status fields accepted by the API.

Returns:

API response payload.

GitCode.repos.transfer_to_org(*, org: str, repo: str, **payload) ApiStatusResponse

Transfer a repository to an organization.

Parameters:
  • org – Destination organization path.

  • repo – Repository path.

  • payload – Transfer options accepted by the API.

Returns:

API response payload.

GitCode.repos.get_transition(*, owner: str | None = None, repo: str | None = None) RepositoryPermissionMode

Get repository transition settings.

Parameters:
  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository name. Uses the client default when omitted.

Returns:

Transition configuration.

GitCode.repos.update_transition(*, owner: str | None = None, repo: str | None = None, **payload) ApiStatusResponse

Update repository transition settings.

Parameters:
  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository name. Uses the client default when omitted.

  • payload – Transition settings accepted by the API.

Returns:

API response payload.

GitCode.repos.update_push_config(*, owner: str | None = None, repo: str | None = None, **payload) RepositoryPushConfig

Update repository push configuration.

Parameters:
  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository name. Uses the client default when omitted.

  • payload – Push configuration values accepted by the API.

Returns:

API response payload.

GitCode.repos.get_push_config(*, owner: str | None = None, repo: str | None = None) RepositoryPushConfig

Get repository push configuration.

Parameters:
  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository name. Uses the client default when omitted.

Returns:

Push configuration payload.

GitCode.repos.upload_image(*, owner: str | None = None, repo: str | None = None, **payload) RepositoryUploadResult

Upload an image asset for a repository.

Parameters:
  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository name. Uses the client default when omitted.

  • payload – Upload fields accepted by the API.

Returns:

Uploaded image metadata.

GitCode.repos.upload_file(*, owner: str | None = None, repo: str | None = None, **payload) RepositoryUploadResult

Upload a file asset for a repository.

Parameters:
  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository name. Uses the client default when omitted.

  • payload – Upload fields accepted by the API.

Returns:

Uploaded file metadata.

GitCode.repos.update_repo_settings(*, owner: str | None = None, repo: str | None = None, **payload) RepositorySettings

Update repository settings.

Parameters:
  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository name. Uses the client default when omitted.

  • payload – Settings fields accepted by the API.

Returns:

API response payload.

GitCode.repos.get_repo_settings(*, owner: str | None = None, repo: str | None = None) RepositorySettings

Get repository settings.

Parameters:
  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository name. Uses the client default when omitted.

Returns:

Repository settings payload.

GitCode.repos.get_pull_request_settings(*, owner: str | None = None, repo: str | None = None) PullRequestSettings

Get pull request settings for a repository.

Parameters:
  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository name. Uses the client default when omitted.

Returns:

Pull request settings payload.

GitCode.repos.update_pull_request_settings(*, owner: str | None = None, repo: str | None = None, **payload) PullRequestSettings

Update pull request settings for a repository.

Parameters:
  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository name. Uses the client default when omitted.

  • payload – Pull request settings accepted by the API.

Returns:

API response payload.

GitCode.repos.set_member_role(*, username: str, owner: str | None = None, repo: str | None = None, permission: str | None = None) RepoMember

Set a repository member role.

Parameters:
  • username – Member username or login.

  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository name. Uses the client default when omitted.

  • permission – Permission or role name accepted by the API.

Returns:

API response payload.

GitCode.repos.transfer(*, owner: str | None = None, repo: str | None = None, **payload) RepositoryTransferResult

Transfer a repository to another owner or namespace.

Parameters:
  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository name. Uses the client default when omitted.

  • payload – Transfer options accepted by the API.

Returns:

API response payload.

GitCode.repos.list_customized_roles(*, owner: str | None = None, repo: str | None = None) List[RepositoryCustomizedRole]

List customized roles for a repository.

Parameters:
  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository name. Uses the client default when omitted.

Returns:

Customized role definitions.

GitCode.repos.get_download_statistics(*, owner: str | None = None, repo: str | None = None, **params) RepositoryDownloadStatistics

Get download statistics for a repository.

Parameters:
  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository name. Uses the client default when omitted.

  • params – Query parameters accepted by the statistics endpoint.

Returns:

Download statistics payload.

GitCode.repos.get_contributor_statistics(*, owner: str | None = None, repo: str | None = None) List[ContributorStatistics]

Get code contribution statistics for a repository.

Parameters:
  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository name. Uses the client default when omitted.

Returns:

Contributor statistics payload.

GitCode.repos.list_events(*, owner: str | None = None, repo: str | None = None, page: int | None = None, per_page: int | None = None) List[APIObject]

List repository events.

Parameters:
  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository name. Uses the client default when omitted.

  • page – Page number.

  • per_page – Page size.

Returns:

Repository event payloads.

GitCode.contents

GitCode.contents: RepoContentsResource

Repository content endpoints exposed as client.contents.

GitCode.contents.get(*, path: str, owner: str | None = None, repo: str | None = None, ref: str | None = None) ContentObject

Get a file or directory entry from a repository.

Parameters:
  • path – Repository-relative file path.

  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository name. Uses the client default when omitted.

  • ref – Optional branch, tag, or commit SHA.

Returns:

Content metadata and payload details.

GitCode.contents.create(*, path: str, content: str, message: str, owner: str | None = None, repo: str | None = None, branch: str | None = None, author_name: str | None = None, author_email: str | None = None) CommitResult

Create a file in a repository.

Parameters:
  • path – Repository-relative file path.

  • content – File content, typically base64-encoded for this API.

  • message – Commit message.

  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository name. Uses the client default when omitted.

  • branch – Optional target branch.

  • author_name – Optional commit author name.

  • author_email – Optional commit author email.

Returns:

Commit result payload.

GitCode.contents.update(*, path: str, content: str, message: str, sha: str, owner: str | None = None, repo: str | None = None, branch: str | None = None, author_name: str | None = None, author_email: str | None = None) CommitResult

Update a file in a repository.

Parameters:
  • path – Repository-relative file path.

  • content – Updated file content, typically base64-encoded.

  • message – Commit message.

  • sha – Current blob SHA required by the API.

  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository name. Uses the client default when omitted.

  • branch – Optional target branch.

  • author_name – Optional commit author name.

  • author_email – Optional commit author email.

Returns:

Commit result payload.

GitCode.contents.delete(*, path: str, message: str, sha: str, owner: str | None = None, repo: str | None = None, branch: str | None = None, author_name: str | None = None, author_email: str | None = None) CommitResult

Delete a file from a repository.

Parameters:
  • path – Repository-relative file path.

  • message – Commit message.

  • sha – Current blob SHA required by the API.

  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository name. Uses the client default when omitted.

  • branch – Optional target branch.

  • author_name – Optional commit author name.

  • author_email – Optional commit author email.

Returns:

Commit result payload.

GitCode.contents.list_paths(*, owner: str | None = None, repo: str | None = None, ref_name: str | None = None, file_name: str | None = None) List[str]

List repository paths known to GitCode.

Parameters:
  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository name. Uses the client default when omitted.

  • ref_name – Optional ref name to inspect.

  • file_name – Optional filename filter.

Returns:

Matching repository paths.

GitCode.contents.get_tree(*, sha: str, owner: str | None = None, repo: str | None = None, recursive: int | None = None, page: int | None = None, per_page: int | None = None) Tree

Get a Git tree object.

Parameters:
  • sha – Tree SHA.

  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository name. Uses the client default when omitted.

  • recursive – Pass 1 to fetch the tree recursively (query parameter per Repository API).

  • page – Page number for large trees.

  • per_page – Page size for large trees.

Returns:

Tree metadata and entries.

GitCode.contents.get_blob(*, sha: str, owner: str | None = None, repo: str | None = None) Blob

Get a Git blob object by SHA.

Parameters:
  • sha – Blob SHA.

  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository name. Uses the client default when omitted.

Returns:

Blob metadata and content.

GitCode.contents.get_raw(*, path: str, owner: str | None = None, repo: str | None = None, ref: str | None = None) bytes

Download raw file bytes from a repository.

Parameters:
  • path – Repository-relative file path.

  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository name. Uses the client default when omitted.

  • ref – Optional branch, tag, or commit SHA.

Returns:

Raw file bytes.

GitCode.branches

GitCode.branches: BranchesResource

Repository branch endpoints exposed as client.branches.

GitCode.branches.list(*, owner: str | None = None, repo: str | None = None, sort: str | None = None, direction: str | None = None, page: int | None = None, per_page: int | None = None) List[Branch]

List branches in a repository.

Parameters:
  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository name. Uses the client default when omitted.

  • sort – Optional sort field such as name or updated.

  • direction – Sort direction, usually asc or desc.

  • page – Page number.

  • per_page – Page size.

Returns:

Repository branches.

GitCode.branches.get(*, branch: str, owner: str | None = None, repo: str | None = None) BranchDetail

Get a single branch.

Parameters:
  • branch – Branch name.

  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository name. Uses the client default when omitted.

Returns:

Branch details.

GitCode.branches.create(*, branch: str, ref: str, owner: str | None = None, repo: str | None = None) Branch

Create a branch from an existing ref.

Parameters:
  • branch – New branch name.

  • ref – Starting ref such as a branch, tag, or commit SHA.

  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository name. Uses the client default when omitted.

Returns:

Created branch details.

GitCode.branches.list_protected(*, owner: str | None = None, repo: str | None = None) List[ProtectedBranch]

List protected branch rules for a repository.

Parameters:
  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository name. Uses the client default when omitted.

Returns:

Protected branch rules.

GitCode.commits

GitCode.commits: CommitsResource

Repository commit endpoints exposed as client.commits.

GitCode.commits.list(*, owner: str | None = None, repo: str | None = None, sha: str | None = None, path: str | None = None, page: int | None = None, per_page: int | None = None) List[CommitSummary]

List commits in a repository.

Parameters:
  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository name. Uses the client default when omitted.

  • sha – Optional starting SHA or ref.

  • path – Optional file path filter.

  • page – Page number.

  • per_page – Page size.

Returns:

Matching commits.

GitCode.commits.get(*, sha: str, owner: str | None = None, repo: str | None = None) Commit

Get a single commit.

Parameters:
  • sha – Commit SHA or branch name accepted by the API.

  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository name. Uses the client default when omitted.

Returns:

Commit details.

GitCode.commits.compare(*, base: str, head: str, owner: str | None = None, repo: str | None = None) CommitComparison

Compare two refs in a repository.

Parameters:
  • base – Base commit SHA, branch, or tag.

  • head – Head commit SHA, branch, or tag.

  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository name. Uses the client default when omitted.

Returns:

Commit comparison payload.

GitCode.commits.list_comments(*, owner: str | None = None, repo: str | None = None, page: int | None = None, per_page: int | None = None) List[CommitComment]

List commit comments for a repository.

Parameters:
  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository name. Uses the client default when omitted.

  • page – Page number.

  • per_page – Page size.

Returns:

Commit comments.

GitCode.commits.get_comment(*, comment_id: int | str, owner: str | None = None, repo: str | None = None) CommitComment

Get a single commit comment.

Parameters:
  • comment_id – Commit comment identifier.

  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository name. Uses the client default when omitted.

Returns:

Commit comment details.

GitCode.commits.create_comment(*, sha: str, body: str, owner: str | None = None, repo: str | None = None, path: str | None = None, position: int | None = None) CommitComment

Create a comment on a commit.

Parameters:
  • sha – Commit SHA.

  • body – Comment body.

  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository name. Uses the client default when omitted.

  • path – Optional file path associated with the comment.

  • position – Optional diff position.

Returns:

Created commit comment.

GitCode.commits.update_comment(*, comment_id: int | str, body: str, owner: str | None = None, repo: str | None = None) CommitComment

Update a commit comment.

Parameters:
  • comment_id – Commit comment identifier.

  • body – Updated comment body.

  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository name. Uses the client default when omitted.

Returns:

Updated commit comment.

GitCode.commits.delete_comment(*, comment_id: int | str, owner: str | None = None, repo: str | None = None) None

Delete a commit comment.

Parameters:
  • comment_id – Commit comment identifier.

  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository name. Uses the client default when omitted.

Collaboration resources

GitCode.issues

GitCode.issues: IssuesResource

Issue endpoints exposed as client.issues.

GitCode.issues.list(*, owner: str | None = None, repo: str | None = None, state: str | None = None, sort: str | None = None, direction: str | None = None, page: int | None = None, per_page: int | None = None) List[Issue]

List issues for a repository.

Parameters:
  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository name. Uses the client default when omitted.

  • state – Issue state filter such as open or closed (see Issues API).

  • sort – Optional sort field.

  • direction – Optional sort direction.

  • page – Page number.

  • per_page – Page size.

Returns:

Matching issues.

GitCode.issues.get(*, number: int | str, owner: str | None = None, repo: str | None = None) Issue

Get a single issue by number.

Parameters:
  • number – Repository-local issue number.

  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository name. Uses the client default when omitted.

Returns:

Issue details.

GitCode.issues.create(*, owner: str, repo: str | None = None, title: str, body: str | None = None, assignee: str | None = None, labels: List[str] | None = None, milestone: int | str | None = None, security_hole: str | None = None) Issue

Create an issue for a repository.

Parameters:
  • owner – Repository owner path.

  • repo – Repository name. Uses the client default when omitted.

  • title – Issue title.

  • body – Optional issue description.

  • assignee – Optional assignee username.

  • labels – Optional label names.

  • milestone – Optional milestone identifier.

  • security_hole – Whether the issue is private; form field described in the Issues API (default public).

Returns:

Created issue details.

GitCode.issues.update(*, number: int | str, owner: str, repo: str | None = None, title: str | None = None, body: str | None = None, state: str | None = None, assignee: str | None = None, labels: List[str] | None = None, milestone: int | str | None = None, security_hole: str | None = None) Issue

Update an existing issue.

Parameters:
  • number – Repository-local issue number.

  • owner – Repository owner path.

  • repo – Repository name. Uses the client default when omitted.

  • title – Updated issue title.

  • body – Updated issue description.

  • state – Updated state such as reopen or close.

  • assignee – Updated assignee username.

  • labels – Replacement label names.

  • milestone – Updated milestone identifier.

  • security_hole – Whether the issue is private; form field described in the Issues API.

Returns:

Updated issue details.

GitCode.issues.list_comments(*, number: int | str, owner: str | None = None, repo: str | None = None, page: int | None = None, per_page: int | None = None) List[IssueComment]

List comments for an issue.

Parameters:
  • number – Repository-local issue number.

  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository path (name). Uses the client default when omitted.

  • page – Current page number (query).

  • per_page – Page size; maximum per REST API is typically 100.

Returns:

Issue comments.

GitCode.issues.create_comment(*, number: int | str, body: str, owner: str | None = None, repo: str | None = None) IssueComment

Create a comment on an issue.

Parameters:
  • number – Repository-local issue number.

  • body – Comment body text.

  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository path. Uses the client default when omitted.

Returns:

Created comment.

GitCode.issues.get_comment(*, comment_id: int | str, owner: str | None = None, repo: str | None = None) IssueComment

Get a single issue comment by identifier.

Parameters:
  • comment_id – Comment id from the API.

  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository path. Uses the client default when omitted.

Returns:

Issue comment.

GitCode.issues.update_comment(*, comment_id: int | str, body: str, owner: str | None = None, repo: str | None = None) IssueComment

Update an issue comment.

Parameters:
  • comment_id – Comment id from the API.

  • body – Updated comment body.

  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository path. Uses the client default when omitted.

Returns:

Updated comment.

GitCode.issues.delete_comment(*, comment_id: int | str, owner: str | None = None, repo: str | None = None) None

Delete an issue comment.

Parameters:
  • comment_id – Comment id from the API.

  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository path. Uses the client default when omitted.

GitCode.issues.list_pull_requests(*, number: int | str, owner: str | None = None, repo: str | None = None) List[PullRequest]

List pull requests associated with an issue.

Parameters:
  • number – Repository-local issue number.

  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository path. Uses the client default when omitted.

Returns:

Pull requests linked to the issue.

GitCode.issues.add_labels(*, number: int | str, labels: List[str], owner: str | None = None, repo: str | None = None) List[Label]

Add labels to an issue.

Parameters:
  • number – Repository-local issue number.

  • labels – Label names to add (request body is a JSON array per REST API).

  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository path. Uses the client default when omitted.

Returns:

Labels on the issue after the operation.

GitCode.issues.remove_label(*, number: int | str, name: str, owner: str | None = None, repo: str | None = None) None

Remove one label from an issue (REST path includes the label name).

Parameters:
  • number – Repository-local issue number.

  • name – Label name to remove.

  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository path. Uses the client default when omitted.

GitCode.issues.list_enterprise(*, enterprise: str, **params) List[Issue]

List enterprise issues visible to the caller.

Parameters:
  • enterprise – Enterprise path or login.

  • params – Additional query parameters accepted by GET .../enterprises/{enterprise}/issues.

Returns:

Enterprise-scoped issues.

GitCode.issues.list_user(**params) List[Issue]

List issues for the authenticated user.

Parameters:

params – Query parameters for GET /user/issues (filters, pagination, etc.).

Returns:

Issues assigned to or authored by the user, per API rules.

GitCode.issues.list_org(*, org: str, **params) List[Issue]

List organization issues visible to the current user.

Parameters:
  • org – Organization path or login.

  • params – Query parameters for GET .../orgs/{org}/issues.

Returns:

Organization-scoped issues.

GitCode.issues.get_enterprise_issue(*, enterprise: str, number: int | str) Issue

Get a specific enterprise issue.

Parameters:
  • enterprise – Enterprise path or login.

  • number – Enterprise issue id or number as accepted by the API path.

Returns:

Issue payload.

GitCode.issues.list_enterprise_comments(*, enterprise: str, number: int | str, **params) List[IssueComment]

List comments for an enterprise issue.

Parameters:
  • enterprise – Enterprise path or login.

  • number – Enterprise issue identifier in the path.

  • params – Optional pagination or filter query parameters.

Returns:

Comments on the enterprise issue.

GitCode.issues.list_enterprise_labels(*, enterprise: str, issue_id: int | str) List[Label]

List labels attached to an enterprise issue.

Parameters:
  • enterprise – Enterprise path or login.

  • issue_id – Enterprise issue id in the path segment .../issues/{issue_id}/labels.

Returns:

Labels on the issue.

GitCode.issues.list_operation_logs(*, owner: str, number: int | str, page: int | None = None, per_page: int | None = None) List[IssueOperationLog]

List operation (audit) logs for an issue.

Parameters:
  • owner – Repository owner path (path segment repos/{owner}/... for this endpoint).

  • number – Repository-local issue number.

  • page – Page number.

  • per_page – Page size.

Returns:

Operation log entries.

GitCode.issues.list_templates(*, owner: str | None = None, repo: str | None = None) List[RepositoryGitCodeTemplate]

List active issue templates under .gitcode/ for this repository.

Matches Markdown (.md, .markdown) and YAML (.yml / .yaml) paths whose names start with ISSUE_TEMPLATE under .gitcode/ (case-insensitive), including files inside localized directories such as .gitcode/ISSUE_TEMPLATE.en/.

Resolution tries the repository, then the owner’s .gitcode repository, then any parent main and parent/.gitcode pairs discovered from forks (each candidate is inspected with GET /repos/{owner}/{repo}; when fork is true, its parent’s repos are appended, deduplicated, and visited in order). The first source with matching templates wins.

Version 1.2.19: Now also supporting GitHub-mirrored repos with a .github/ folder.

Parameters:
  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository name. Uses the client default when omitted.

Returns:

Template metadata entries (paths and SHAs); empty when none match.

GitCode.issues.get_template(*, path: str, owner: str | None = None, repo: str | None = None, encoding: str = 'utf-8', **decoding_kwargs) str

Load a single issue template file body from the default branch.

Uses the same resolution order as list_templates(). The path must match the active issue template naming convention (see GitCode .gitcode documentation).

Parameters:
  • path – Repository-relative path such as .gitcode/ISSUE_TEMPLATE_bug.md or .gitcode/ISSUE_TEMPLATE/config.yml.

  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository name. Uses the client default when omitted.

  • encoding – Codec to use when decoding raw file bytes. Default utf-8.

  • decoding_kwargs – Keyword arguments forwarded to bytes.decode(), such as errors ("strict", "ignore", or "replace").

Returns:

Decoded template file contents.

GitCode.pulls

GitCode.pulls: PullsResource

Pull request endpoints exposed as client.pulls.

GitCode.pulls.list(*, owner: str | None = None, repo: str | None = None, state: str | None = None, sort: str | None = None, direction: str | None = None, page: int | None = None, per_page: int | None = None, **params) List[PullRequest] | PullRequestCount

List pull requests for a repository.

When only_count is true in params (or passed via **params), the API returns a JSON object with counts per state instead of an array (see Pull Request API).

Parameters:
  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository path (name). Uses the client default when omitted.

  • state – PR state filter: all, open, closed, locked, merged (default all in API).

  • sort – Sort field, typically created or updated.

  • directionasc or desc (API default is usually desc).

  • page – Current page number.

  • per_page – Page size (max 100 per API documentation).

  • params – Extra query parameters from the Pull Request API, for example base, since, author, assignee, reviewer, milestone_number, labels (comma-separated), merged_after, merged_before, created_after, created_before, updated_after, updated_before, only_count (boolean), and ISO 8601 timestamps (URL-encoded when sent).

Returns:

A list of pull requests, or an APIObject for count-only responses.

GitCode.pulls.get(*, number: int | str, owner: str | None = None, repo: str | None = None) PullRequest

Get a single pull request.

Parameters:
  • number – Pull request number in the repository.

  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository path. Uses the client default when omitted.

Returns:

Pull request details.

GitCode.pulls.create(*, title: str, head: str, base: str, owner: str | None = None, repo: str | None = None, body: str | None = None, draft: bool | None = None, assignees: List[str] | None = None, testers: List[str] | None = None, labels: List[str] | None = None, milestone_number: int | None = None, issue: str | None = None, prune_source_branch: bool | None = None, squash: bool | None = None, squash_commit_message: str | None = None, fork_path: str | None = None) PullRequest

Create a pull request.

Parameters:
  • title – Pull request title.

  • head – Source branch ref (head branch, in forks use owner:branch like “SushiNinja:develop”).

  • base – Target branch ref (base branch).

  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository path. Uses the client default when omitted.

  • body – Description body.

  • draft – Whether to create as draft.

  • assignees – Assignee logins; sent as a comma-separated string per API.

  • testers – Tester logins; comma-separated in the JSON body.

  • labels – Label names; comma-separated in the JSON body.

  • milestone_number – Target milestone number.

  • issue – Related issue reference when supported by the API.

  • prune_source_branch – Whether to delete the source branch after merge when applicable.

  • squash – Squash-merge preference where supported.

  • squash_commit_message – Custom squash commit message.

  • fork_path – Fork owner/repo when opening a PR from a fork, like “SushiNinja/agent-core-contrib”.

Returns:

Created pull request.

GitCode.pulls.update(*, number: int | str, owner: str | None = None, repo: str | None = None, title: str | None = None, body: str | None = None, state: str | None = None, base: str | None = None, labels: List[str] | None = None, draft: bool | None = None) PullRequest

Update a pull request.

Parameters:
  • number – Pull request number in the repository.

  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository path. Uses the client default when omitted.

  • title – New title.

  • body – New description.

  • state – New state as accepted by the API (for example close or reopen semantics).

  • base – New base branch name.

  • labels – Replacement labels; comma-separated in the JSON body.

  • draft – Draft flag.

Returns:

Updated pull request.

GitCode.pulls.merge(*, number: int | str, owner: str | None = None, repo: str | None = None, merge_commit_message: str | None = None, squash: bool | None = None) MergeResult

Merge a pull request.

Parameters:
  • number – Pull request number.

  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository path. Uses the client default when omitted.

  • merge_commit_message – Optional merge commit message.

  • squash – Whether to squash merge when supported.

Returns:

Merge result payload.

GitCode.pulls.get_merge_status(*, number: int | str, owner: str | None = None, repo: str | None = None) MergeStatus

Get mergeability status for a pull request (GET on the merge resource).

Parameters:
  • number – Pull request number.

  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository path. Uses the client default when omitted.

Returns:

Merge status / mergeability information.

GitCode.pulls.list_commits(*, number: int | str, owner: str | None = None, repo: str | None = None) List[APIObject]

List commits included in a pull request.

Parameters:
  • number – Pull request number.

  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository path. Uses the client default when omitted.

Returns:

Commit objects (wrapped as APIObject).

GitCode.pulls.list_files(*, number: int | str, owner: str | None = None, repo: str | None = None) List[PullRequestFile]

List files changed by a pull request.

Parameters:
  • number – Pull request number.

  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository path. Uses the client default when omitted.

Returns:

File change entries.

GitCode.pulls.list_comments(*, number: int | str, owner: str | None = None, repo: str | None = None, page: int | None = None, per_page: int | None = None) List[PullRequestComment]

List comments on a pull request.

Parameters:
  • number – Pull request number.

  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository path. Uses the client default when omitted.

  • page – Page number.

  • per_page – Page size.

Returns:

Pull request review comments.

GitCode.pulls.create_comment(*, number: int | str, body: str, owner: str | None = None, repo: str | None = None, commit_id: str | None = None, path: str | None = None, position: int | None = None) PullRequestComment

Create a pull request (review) comment.

Parameters:
  • number – Pull request number.

  • body – Comment body.

  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository path. Uses the client default when omitted.

  • commit_id – Commit SHA the comment applies to.

  • path – File path in the diff.

  • position – Line or diff position as defined by the API.

Returns:

Created comment.

GitCode.pulls.get_comment(*, comment_id: int | str, owner: str | None = None, repo: str | None = None) PullRequestComment

Get a single pull request comment by id (global comment endpoint).

Parameters:
  • comment_id – Comment id.

  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository path. Uses the client default when omitted.

Returns:

Pull request comment.

GitCode.pulls.update_comment(*, comment_id: int | str, body: str, owner: str | None = None, repo: str | None = None) PullRequestComment

Update a pull request comment.

Parameters:
  • comment_id – Comment id.

  • body – Updated body.

  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository path. Uses the client default when omitted.

Returns:

Updated comment.

GitCode.pulls.delete_comment(*, comment_id: int | str, owner: str | None = None, repo: str | None = None) None

Delete a pull request comment.

Parameters:
  • comment_id – Comment id.

  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository path. Uses the client default when omitted.

GitCode.pulls.list_labels(*, number: int | str, owner: str | None = None, repo: str | None = None) List[Label]

List labels attached to a pull request.

Parameters:
  • number – Pull request number.

  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository path. Uses the client default when omitted.

Returns:

Labels on the pull request.

GitCode.pulls.add_labels(*, number: int | str, labels: List[str], owner: str | None = None, repo: str | None = None) List[Label]

Add labels to a pull request.

Parameters:
  • number – Pull request number.

  • labels – Label names (JSON array body per API).

  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository path. Uses the client default when omitted.

Returns:

Labels after the operation.

GitCode.pulls.replace_labels(*, number: int | str, labels: List[str], owner: str | None = None, repo: str | None = None) List[Label]

Replace all labels on a pull request.

Parameters:
  • number – Pull request number.

  • labels – Complete new label set (JSON array body).

  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository path. Uses the client default when omitted.

Returns:

Labels after replacement.

GitCode.pulls.remove_label(*, number: int | str, label: str, owner: str | None = None, repo: str | None = None) None

Remove a label from a pull request.

Parameters:
  • number – Pull request number.

  • label – Label name to remove.

  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository path. Uses the client default when omitted.

GitCode.pulls.request_review(*, number: int | str, owner: str | None = None, repo: str | None = None, event: str, body: str | None = None) None

Submit a pull request review event (approve, request changes, etc., per API).

Parameters:
  • number – Pull request number.

  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository path. Uses the client default when omitted.

  • event – Review event name as required by GitCode (for example APPROVE; see API docs).

  • body – Optional comment body accompanying the event.

Returns:

Review result object.

GitCode.pulls.list_operation_logs(*, number: int | str, owner: str | None = None, repo: str | None = None, **params) List[PullRequestOperationLog]

List operation logs for a pull request.

Parameters:
  • number – Pull request number.

  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository path. Uses the client default when omitted.

  • params – Additional query parameters accepted by the operate_logs endpoint.

Returns:

Log entries as generic API objects.

GitCode.pulls.request_test(*, number: int | str, owner: str | None = None, repo: str | None = None, **payload) None

Request testing for a pull request.

Parameters:
  • number – Pull request number.

  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository path. Uses the client default when omitted.

  • payload – JSON fields required by the test request endpoint.

Returns:

Test request result.

GitCode.pulls.update_testers(*, number: int | str, testers: List[str], owner: str | None = None, repo: str | None = None) None

Replace pull request testers.

Parameters:
  • number – Pull request number.

  • testers – New tester list; serialized as a comma-separated testers field in JSON.

  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository path. Uses the client default when omitted.

Returns:

API response payload.

GitCode.pulls.add_testers(*, number: int | str, testers: List[str], owner: str | None = None, repo: str | None = None) List[UserSummary]

Add testers to a pull request.

Parameters:
  • number – Pull request number.

  • testers – Usernames to add; comma-separated in the JSON body.

  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository path. Uses the client default when omitted.

Returns:

API response payload.

GitCode.pulls.update_assignees(*, number: int | str, assignees: List[str], owner: str | None = None, repo: str | None = None) None

Replace pull request assignees.

Parameters:
  • number – Pull request number.

  • assignees – New assignee list; comma-separated in the JSON body.

  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository path. Uses the client default when omitted.

Returns:

API response payload.

GitCode.pulls.add_assignees(*, number: int | str, assignees: List[str], owner: str | None = None, repo: str | None = None) PullRequestAssigneeCount

Add assignees to a pull request.

Parameters:
  • number – Pull request number.

  • assignees – Usernames to add; comma-separated in the JSON body.

  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository path. Uses the client default when omitted.

Returns:

API response payload.

GitCode.pulls.remove_assignees(*, number: int | str, assignees: List[str], owner: str | None = None, repo: str | None = None) None

Remove assignees from a pull request.

Parameters:
  • number – Pull request number.

  • assignees – Usernames to remove; comma-separated in the JSON body.

  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository path. Uses the client default when omitted.

GitCode.pulls.list_issues(*, number: int | str, owner: str | None = None, repo: str | None = None) List[Issue]

List issues linked to a pull request.

Parameters:
  • number – Pull request number.

  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository path. Uses the client default when omitted.

Returns:

Linked issues.

GitCode.pulls.list_enterprise(*, enterprise: str, **params) List[PullRequest]

List enterprise pull requests.

Parameters:
  • enterprise – Enterprise path or login.

  • params – Query parameters for the enterprise pull_requests listing.

Returns:

Pull requests in the enterprise scope.

GitCode.pulls.list_org(*, org: str, **params) List[PullRequest]

List pull requests for an organization scope.

Parameters:
  • org – Organization path (GET .../org/{org}/pull_requests).

  • params – Query parameters accepted by that listing.

Returns:

Organization-scoped pull requests.

GitCode.pulls.list_issue_pull_requests(*, enterprise: str, number: int | str) List[PullRequest]

List pull requests associated with an enterprise issue.

Parameters:
  • enterprise – Enterprise path or login.

  • number – Enterprise issue number or id in the path.

Returns:

Related pull requests.

GitCode.pulls.list_templates(*, owner: str | None = None, repo: str | None = None) List[RepositoryGitCodeTemplate]

List active pull request templates under .gitcode/ for this repository.

Resolution tries the repository, then the owner’s .gitcode repository, then any parent main and parent/.gitcode pairs discovered from forks (each candidate is inspected with GET /repos/{owner}/{repo}; when fork is true, its parent’s repos are appended, deduplicated, and visited in order). The first source with matching templates wins.

Version 1.2.19: Now also supporting GitHub-mirrored repos with a .github/ folder.

Parameters:
  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository path. Uses the client default when omitted.

Returns:

Template metadata entries (paths and SHAs); empty when none match.

GitCode.pulls.get_template(*, path: str, owner: str | None = None, repo: str | None = None, encoding: str = 'utf-8', **decoding_kwargs) str

Load a single pull request template file body from the default branch.

Uses the same resolution order as list_templates(). The path must match the active pull request template naming convention (see GitCode .gitcode documentation).

Parameters:
  • path – Repository-relative path such as .gitcode/PULL_REQUEST_TEMPLATE.md.

  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository path. Uses the client default when omitted.

  • encoding – Codec to use when decoding raw file bytes. Default utf-8.

  • decoding_kwargs – Keyword arguments forwarded to bytes.decode(), such as errors ("strict", "ignore", or "replace").

Returns:

Decoded template file contents.

GitCode.labels

GitCode.labels: LabelsResource

Label endpoints exposed as client.labels.

GitCode.labels.list(*, owner: str | None = None, repo: str | None = None) List[Label]

List repository labels.

Parameters:
  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository path. Uses the client default when omitted.

Returns:

All labels defined on the repository.

GitCode.labels.create(*, name: str, color: str, owner: str | None = None, repo: str | None = None) Label

Create a repository label.

Parameters:
  • name – Label name.

  • color – Label color (typically a #RRGGBB hex string per API examples).

  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository path. Uses the client default when omitted.

Returns:

Created label.

GitCode.labels.update(*, original_name: str, owner: str | None = None, repo: str | None = None, name: str | None = None, color: str | None = None) Label

Update a repository label.

Parameters:
  • original_name – Current label name in the URL path.

  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository path. Uses the client default when omitted.

  • name – New label name, if renaming.

  • color – New color value.

Returns:

Updated label.

GitCode.labels.delete(*, name: str, owner: str | None = None, repo: str | None = None) None

Delete a repository label.

Parameters:
  • name – Label name in the path.

  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository path. Uses the client default when omitted.

GitCode.labels.clear_issue_labels(*, number: int | str, owner: str | None = None, repo: str | None = None) None

Remove all labels from an issue.

Parameters:
  • number – Repository-local issue number.

  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository path. Uses the client default when omitted.

GitCode.labels.replace_issue_labels(*, number: int | str, labels: List[str], owner: str | None = None, repo: str | None = None) List[Label]

Replace all labels on an issue.

Parameters:
  • number – Repository-local issue number.

  • labels – Complete new label set (JSON array body).

  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository path. Uses the client default when omitted.

Returns:

Labels after replacement.

GitCode.labels.list_enterprise(*, enterprise: str, search: str | None = None, direction: str | None = None, page: int | None = None, per_page: int | None = None, api_version: str = 'v5') List[Label]

List labels for an enterprise, optionally using a different API version.

Parameters:
  • enterprise – Enterprise path or login.

  • search – Optional name search string.

  • direction – Sort direction for results.

  • page – Page number.

  • per_page – Page size.

  • api_versionv5 uses /api/v5/...; other values build /api/{version}/... on the same host.

Returns:

Enterprise label definitions.

GitCode.milestones

GitCode.milestones: MilestonesResource

Milestone endpoints exposed as client.milestones.

GitCode.milestones.list(*, owner: str | None = None, repo: str | None = None, **params) List[Milestone]

List milestones for a repository.

Parameters:
  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository path. Uses the client default when omitted.

  • params – Query parameters accepted by the milestones listing (state, sort, pagination, etc.).

Returns:

Milestones.

GitCode.milestones.get(*, number: int | str, owner: str | None = None, repo: str | None = None) Milestone

Get a single milestone.

Parameters:
  • number – Milestone number in the repository.

  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository path. Uses the client default when omitted.

Returns:

Milestone details.

GitCode.milestones.create(*, title: str, due_on: str, owner: str | None = None, repo: str | None = None, description: str | None = None) Milestone

Create a milestone.

Parameters:
  • title – Milestone title.

  • due_on – Due date string in the format expected by the API (often ISO 8601).

  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository path. Uses the client default when omitted.

  • description – Optional description.

Returns:

Created milestone.

GitCode.milestones.update(*, number: int | str, title: str, due_on: str, owner: str | None = None, repo: str | None = None, description: str | None = None, state: str | None = None) Milestone

Update a milestone.

Parameters:
  • number – Milestone number.

  • title – Updated title.

  • due_on – Updated due date.

  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository path. Uses the client default when omitted.

  • description – Updated description.

  • state – Milestone state such as open or closed per API.

Returns:

Updated milestone.

GitCode.milestones.delete(*, number: int | str, owner: str | None = None, repo: str | None = None) None

Delete a milestone.

Parameters:
  • number – Milestone number.

  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository path. Uses the client default when omitted.

GitCode.members

GitCode.members: MembersResource

Repository member endpoints exposed as client.members.

GitCode.members.add_or_update(*, username: str, owner: str | None = None, repo: str | None = None, permission: str | None = None) RepoMember

Add or update repository member permissions.

Parameters:
  • username – Collaborator login.

  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository path. Uses the client default when omitted.

  • permission – Permission string (for example pull, push, admin per GitCode API).

Returns:

Collaborator record.

GitCode.members.remove(*, username: str, owner: str | None = None, repo: str | None = None) None

Remove a repository member.

Parameters:
  • username – Collaborator login to remove.

  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository path. Uses the client default when omitted.

GitCode.members.list(*, owner: str | None = None, repo: str | None = None, page: int | None = None, per_page: int | None = None) List[RepoCollaborator]

List repository members (collaborators).

Parameters:
  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository path. Uses the client default when omitted.

  • page – Page number.

  • per_page – Page size.

Returns:

Collaborators with permission metadata.

GitCode.members.get(*, username: str, owner: str | None = None, repo: str | None = None) RepositoryCollaboratorCheck

Check whether a user is a repository member.

GitCode.members.get_permission(*, username: str, owner: str | None = None, repo: str | None = None) RepoMemberPermission

Get repository member permissions.

Parameters:
  • username – Collaborator login.

  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository path. Uses the client default when omitted.

Returns:

Effective permission for the user on the repository.

Account and discovery resources

GitCode.users

GitCode.users: UsersResource

User endpoints exposed as client.users.

GitCode.users.get(*, username: str) User

Get a user profile.

Parameters:

username – GitCode username or login.

Returns:

User profile details.

GitCode.users.me() User

Get the profile of the authenticated user.

Returns:

Authorized user profile.

GitCode.users.list_emails() List[Email]

List email addresses for the authenticated user.

Returns:

Email records associated with the current account.

GitCode.users.list_events(*, username: str, year: str | None = None, next: str | None = None) UserEventsResponse

List activity events for a user.

Parameters:
  • username – GitCode username or login (path segment, see User API).

  • year – Optional start year filter (query year, e.g. 2024 per documentation).

  • next – Optional end date / pagination cursor (query next; often an ISO timestamp from a prior page).

Returns:

Event payload grouped by date.

GitCode.users.list_repos(*, username: str, **params) List[Repository]

List public repositories owned by a user.

Supported filters follow the user repository API documentation, such as type, sort, direction, page, and per_page.

Parameters:
  • username – GitCode username or login.

  • params – Query parameters accepted by the REST endpoint.

Returns:

Matching repositories.

GitCode.users.create_key(*, key: str, title: str) PublicKey

Add a public SSH key for the authenticated user.

Parameters:
  • key – Public key material.

  • title – Human-readable key name.

Returns:

Created key metadata.

GitCode.users.list_keys(*, page: int | None = None, per_page: int | None = None) List[APIObject]

List public SSH keys for the authenticated user.

Parameters:
  • page – Page number.

  • per_page – Page size.

Returns:

Public key records.

GitCode.users.delete_key(*, key_id: int | str) None

Delete a public SSH key.

Parameters:

key_id – Public key identifier.

GitCode.users.get_key(*, key_id: int | str) PublicKey

Get a single public SSH key.

Parameters:

key_id – Public key identifier.

Returns:

Public key metadata.

GitCode.users.get_namespace(*, path: str) Namespace

Resolve namespace information for the authenticated user.

Parameters:

path – Namespace path to look up.

Returns:

Namespace details.

GitCode.users.list_starred(*, sort: str | None = None, direction: str | None = None, page: int | None = None, per_page: int | None = None) List[Repository]

List repositories starred by the authenticated user.

Parameters:
  • sort – Sort field such as created or updated.

  • direction – Sort direction, usually asc or desc.

  • page – Page number.

  • per_page – Page size.

Returns:

Starred repositories.

GitCode.orgs

GitCode.orgs: OrgsResource

Organization endpoints exposed as client.orgs.

GitCode.orgs.list_for_user(*, username: str, page: int | None = None, per_page: int | None = None) List[OrganizationSummary]

List organizations for a user.

Parameters:
  • username – GitCode username or login.

  • page – Page number.

  • per_page – Page size.

Returns:

Organizations the user belongs to.

GitCode.orgs.list_authenticated(*, page: int | None = None, per_page: int | None = None, admin: bool | None = None) List[OrganizationSummary]

List organizations for the authenticated user.

Parameters:
  • page – Page number.

  • per_page – Page size.

  • admin – Optional admin-only filter.

Returns:

Organizations visible to the authorized user.

GitCode.orgs.get_member(*, org: str, username: str) OrganizationMembership

Get an organization member profile.

Parameters:
  • org – Organization path or login.

  • username – Member username or login.

Returns:

Organization membership details.

GitCode.orgs.get(*, org: str) Organization

Get an organization.

Parameters:

org – Organization path or login.

Returns:

Organization details.

GitCode.orgs.list_repos(*, org: str, type: str | None = None, page: int | None = None, per_page: int | None = None) List[Repository]

List repositories for an organization.

Parameters:
  • org – Organization path or login.

  • type – Repository type filter such as all, public, or private.

  • page – Page number.

  • per_page – Page size.

Returns:

Matching repositories.

GitCode.orgs.create_repo(*, org: str, name: str, **payload) Repository

Create an organization repository.

Additional payload fields match the organization repository creation endpoint, such as description, homepage, private, public, auto_init, and default_branch.

Parameters:
  • org – Organization path or login.

  • name – Repository name.

  • payload – Additional repository creation fields.

Returns:

Created repository metadata.

GitCode.orgs.get_enterprise_member(*, enterprise: str, username: str) EnterpriseMember

Get a member profile for an enterprise.

Parameters:
  • enterprise – Enterprise path or login.

  • username – Member username or login.

Returns:

Enterprise membership details.

GitCode.orgs.get_membership(*, org: str) OrganizationMembership

Get the authenticated user’s membership in an organization.

Parameters:

org – Organization path or login.

Returns:

Membership details for the current user.

GitCode.orgs.list_members(*, org: str, page: int | None = None, per_page: int | None = None, role: str | None = None) List[User]

List members of an organization.

Parameters:
  • org – Organization path or login.

  • page – Page number.

  • per_page – Page size.

  • role – Optional role filter such as all, admin, or member.

Returns:

Organization members.

GitCode.orgs.list_enterprise_members(*, enterprise: str, page: int | None = None, per_page: int | None = None, role: str | None = None) List[EnterpriseMember]

List members of an enterprise.

Parameters:
  • enterprise – Enterprise path or login.

  • page – Page number.

  • per_page – Page size.

  • role – Optional role filter.

Returns:

Enterprise members.

GitCode.orgs.remove_member(*, org: str, username: str) EmptyResponse

Remove a member from an organization.

Parameters:
  • org – Organization path or login.

  • username – Member username or login.

Returns:

API response payload, if any.

GitCode.orgs.list_followers(*, owner: str, page: int | None = None, per_page: int | None = None) List[User]

List followers of an organization.

Parameters:
  • owner – Organization path.

  • page – Page number.

  • per_page – Page size.

Returns:

Followers of the organization.

GitCode.orgs.get_issue_extend_settings(*, org: str) List[APIObject]

Get extended issue type and status settings for an organization.

Parameters:

org – Organization path or login.

Returns:

Extended issue configuration entries.

GitCode.orgs.invite_member(*, org: str, username: str, permission: str | None = None, role_id: str | None = None) User

Invite a user to an organization.

Parameters:
  • org – Organization path or login.

  • username – Member username or login.

  • permission – Permission level such as pull, push, or admin.

  • role_id – Custom role identifier when using a customized permission.

Returns:

Invited user information with permissions.

GitCode.orgs.update_enterprise_member(*, enterprise: str, username: str, role: str) EnterpriseMember

Update the role of an enterprise member.

Parameters:
  • enterprise – Enterprise path or login.

  • username – Member username or login.

  • role – Enterprise role such as viewer, developer, or admin.

Returns:

Updated enterprise membership.

GitCode.orgs.update(*, org: str, **payload) Organization

Update organization metadata.

Parameters:
  • org – Organization path or login.

  • payload – Updatable fields such as name, email, or description.

Returns:

Updated organization details.

GitCode.orgs.leave(*, org: str) None

Leave an organization as the authenticated user.

Parameters:

org – Organization path or login.

GitCode.oauth

GitCode.oauth: OAuthResource

OAuth helper endpoints exposed as client.oauth.

GitCode.oauth.build_authorize_url(*, client_id: str, redirect_uri: str, scope: str | None = None, state: str | None = None, response_type: str = 'code') str

Build the GitCode OAuth authorization URL.

Parameters:
  • client_id – OAuth application client ID.

  • redirect_uri – Registered redirect URI.

  • scope – Optional OAuth scopes.

  • state – Optional CSRF protection value.

  • response_type – OAuth response type, defaults to "code".

Returns:

Browser URL for the authorization step.

GitCode.oauth.exchange_token(*, code: str, client_id: str, client_secret: str) OAuthToken

Exchange an authorization code for an OAuth token.

Parameters:
  • code – Authorization code returned by GitCode.

  • client_id – OAuth application client ID.

  • client_secret – OAuth application client secret.

Returns:

OAuth access token payload.

GitCode.oauth.refresh_token(*, refresh_token: str) OAuthToken

Refresh an OAuth token.

Parameters:

refresh_token – Refresh token previously issued by GitCode.

Returns:

Refreshed OAuth token payload.

Miscellaneous repository resources

GitCode.releases

GitCode.releases: ReleasesResource

Release endpoints exposed as client.releases.

GitCode.releases.create(*, tag: str, name: str, body: str, owner: str | None = None, repo: str | None = None, target_commitish: str | None = None, release_status: str | None = None) Release

Create a repository release.

Parameters:
  • tag – Tag name for the release.

  • name – Release title.

  • body – Release description.

  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository path. Uses the client default when omitted.

  • target_commitish – Branch name or commit SHA for creating a missing tag.

  • release_status – Release status, such as pre or latest.

Returns:

Created release payload.

GitCode.releases.update(*, tag: str, name: str, body: str, owner: str | None = None, repo: str | None = None, release_status: str | None = None) Release

Update a repository release.

Parameters:
  • tag – Tag name in the release URL path.

  • name – Release name.

  • body – Release description.

  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository path. Uses the client default when omitted.

  • release_status – Release status, such as pre or latest.

Returns:

Updated release payload.

GitCode.releases.get_upload_url(*, tag: str, file_name: str, owner: str | None = None, repo: str | None = None) ReleaseUploadURL

Get a pre-signed URL for uploading a release attachment.

Parameters:
  • tag – Tag name in the release URL path.

  • file_name – Attachment file name to upload.

  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository path. Uses the client default when omitted.

Returns:

Upload URL and required headers.

GitCode.releases.upload(*, tag: str, file_name: str, content: bytes | str, owner: str | None = None, repo: str | None = None, upload_timeout: float | None = 300.0) None

Upload a release attachment through the pre-signed upload URL.

Parameters:
  • tag – Tag name in the release URL path.

  • file_name – Attachment file name to upload.

  • content – Attachment bytes, or a local file path to read as bytes.

  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository path. Uses the client default when omitted.

  • upload_timeout – Timeout for upload operation. Default to 300 (5 minutes).

GitCode.releases.get_by_tag(*, tag: str, owner: str | None = None, repo: str | None = None) Release

Get a repository release by tag name.

Parameters:
  • tag – Git tag the release is attached to.

  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository path. Uses the client default when omitted.

Returns:

Release metadata for that tag.

GitCode.releases.list(*, owner: str | None = None, repo: str | None = None, direction: str | None = None, page: int | None = None, per_page: int | None = None) List[Release]

List releases for a repository.

Parameters:
  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository path. Uses the client default when omitted.

  • direction – Sort direction, for example asc or desc.

  • page – Page number.

  • per_page – Page size, up to 100.

Returns:

Releases ordered as returned by the API.

GitCode.releases.get_latest(*, owner: str | None = None, repo: str | None = None, type: str | None = None) Release

Get the latest repository release.

Parameters:
  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository path. Uses the client default when omitted.

  • type – Selection type, either updated or latest.

Returns:

Latest release metadata.

GitCode.releases.get(*, tag: str, owner: str | None = None, repo: str | None = None, temp_download_url: bool | str | None = None) Release

Get a repository release by tag path.

Parameters:
  • tag – Tag name in the release URL path.

  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository path. Uses the client default when omitted.

  • temp_download_url – Whether to return temporary source package and attachment URLs.

Returns:

Release metadata.

GitCode.releases.download_attachment(*, tag: str, file_name: str, owner: str | None = None, repo: str | None = None) bytes

Download a release attachment as bytes.

Parameters:
  • tag – Tag name in the release URL path.

  • file_name – Attachment file name.

  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository path. Uses the client default when omitted.

Returns:

Attachment bytes.

GitCode.tags

GitCode.tags: TagsResource

Tag endpoints exposed as client.tags.

GitCode.tags.list(*, owner: str | None = None, repo: str | None = None, page: int | None = None, per_page: int | None = None) List[Tag]

List tags for a repository.

Parameters:
  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository path. Uses the client default when omitted.

  • page – Page number.

  • per_page – Page size.

Returns:

Tags.

GitCode.tags.create(*, refs: str, tag_name: str, owner: str | None = None, repo: str | None = None, tag_message: str | None = None) Tag

Create a tag for a repository.

Parameters:
  • refs – Object SHA or ref the tag should point to.

  • tag_name – Name of the new tag.

  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository path. Uses the client default when omitted.

  • tag_message – Optional annotated tag message.

Returns:

Created tag.

GitCode.tags.list_protected(*, owner: str | None = None, repo: str | None = None, page: int | None = None, per_page: int | None = None) List[ProtectedTag]

List protected tags for a repository.

Parameters:
  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository path. Uses the client default when omitted.

  • page – Page number.

  • per_page – Page size.

Returns:

Protected tag rules.

GitCode.tags.delete_protected(*, tag_name: str, owner: str | None = None, repo: str | None = None) None

Delete a protected tag rule.

Parameters:
  • tag_name – Protected tag name in the URL path.

  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository path. Uses the client default when omitted.

GitCode.tags.get_protected(*, tag_name: str, owner: str | None = None, repo: str | None = None) ProtectedTag

Get details for a protected tag rule.

Parameters:
  • tag_name – Tag name in the path.

  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository path. Uses the client default when omitted.

Returns:

Protected tag configuration.

GitCode.tags.create_protected(*, name: str, owner: str | None = None, repo: str | None = None, create_access_level: int | None = None) ProtectedTag

Create a protected tag rule.

Parameters:
  • name – Tag name or pattern to protect.

  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository path. Uses the client default when omitted.

  • create_access_level – Minimum access level required to create matching tags (API-specific integer).

Returns:

Created rule.

GitCode.tags.update_protected(*, name: str, create_access_level: int, owner: str | None = None, repo: str | None = None) ProtectedTag

Update a protected tag rule.

GitCode.webhooks

GitCode.webhooks: WebhooksResource

Webhook endpoints exposed as client.webhooks.

GitCode.webhooks.list(*, owner: str | None = None, repo: str | None = None, page: int | None = None, per_page: int | None = None) List[Webhook]

List webhooks for a repository.

Parameters:
  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository path. Uses the client default when omitted.

  • page – Page number.

  • per_page – Page size.

Returns:

Hook configurations.

GitCode.webhooks.create(*, url: str, owner: str | None = None, repo: str | None = None, **payload) Webhook

Create a repository webhook.

Parameters:
  • url – Payload URL GitCode should POST events to.

  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository path. Uses the client default when omitted.

  • payload – Additional fields from the Webhooks API (events list, secret, content type, etc.).

Returns:

Created webhook.

GitCode.webhooks.get(*, hook_id: int | str, owner: str | None = None, repo: str | None = None) Webhook

Get a repository webhook by identifier.

Parameters:
  • hook_id – Webhook id from the API.

  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository path. Uses the client default when omitted.

Returns:

Webhook configuration.

GitCode.webhooks.update(*, hook_id: int | str, url: str, owner: str | None = None, repo: str | None = None, **payload) Webhook

Update a repository webhook.

Parameters:
  • hook_id – Webhook id.

  • url – New payload URL (merged into the JSON body).

  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository path. Uses the client default when omitted.

  • payload – Other mutable webhook fields accepted by the API.

Returns:

Updated webhook.

GitCode.webhooks.delete(*, hook_id: int | str, owner: str | None = None, repo: str | None = None) None

Delete a repository webhook.

Parameters:
  • hook_id – Webhook id.

  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository path. Uses the client default when omitted.

GitCode.webhooks.test(*, hook_id: int | str, owner: str | None = None, repo: str | None = None) None

Send a test delivery for a repository webhook.

Parameters:
  • hook_id – Webhook id.

  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository path. Uses the client default when omitted.

Asynchronous client

class AsyncGitCode(*, api_key: str | None = None, owner: str | None = None, repo: str | None = None, base_url: str = 'https://api.gitcode.com/api/v5', timeout: float | None = None, http_client: AsyncClient | None = None, decrypt: Callable | None = None)

Bases: AsyncAPIClient

Asynchronous GitCode API client.

Parameters:
  • api_key – Personal access token used for GitCode API requests.

  • owner – Default repository owner used by repository-scoped helpers.

  • repo – Default repository name used by repository-scoped helpers.

  • base_url – Base URL for the GitCode REST API.

  • timeout – Request timeout in seconds.

  • http_client – Optional pre-configured httpx.AsyncClient instance.

  • decrypt – Optional decryption function for encrypted access token.

Create an asynchronous client and attach resource groups.

async close() None

Close the underlying async HTTP client and clear cache for garbage collection.

async request(method: str, path: str, *, params: Dict[str, Any] | None = None, json: Any = None, data: Dict[str, Any] | None = None, headers: Dict[str, str] | None = None, raw: bool = False) Any

Send an asynchronous HTTP request to the GitCode API.

Parameters:
  • method – HTTP method such as "GET" or "POST".

  • path – Relative API path or absolute URL.

  • params – Optional query parameters.

  • json – Optional JSON request body.

  • data – Optional form payload.

  • headers – Optional extra HTTP headers.

  • raw – When True, return response bytes instead of parsed JSON.

Returns:

Parsed JSON payload, raw bytes, text, or None.

repos: AsyncReposResource

Repository endpoints exposed as client.repos.

contents: AsyncRepoContentsResource

Repository content endpoints exposed as client.contents.

branches: AsyncBranchesResource

Repository branch endpoints exposed as client.branches.

commits: AsyncCommitsResource

Repository commit endpoints exposed as client.commits.

issues: AsyncIssuesResource

Issue endpoints exposed as client.issues.

pulls: AsyncPullsResource

Pull request endpoints exposed as client.pulls.

labels: AsyncLabelsResource

Label endpoints exposed as client.labels.

milestones: AsyncMilestonesResource

Milestone endpoints exposed as client.milestones.

members: AsyncMembersResource

Repository member endpoints exposed as client.members.

releases: AsyncReleasesResource

Release endpoints exposed as client.releases.

tags: AsyncTagsResource

Tag endpoints exposed as client.tags.

webhooks: AsyncWebhooksResource

Webhook endpoints exposed as client.webhooks.

users: AsyncUsersResource

User endpoints exposed as client.users.

orgs: AsyncOrgsResource

Organization endpoints exposed as client.orgs.

search: AsyncSearchResource

Search endpoints exposed as client.search.

oauth: AsyncOAuthResource

OAuth helper endpoints exposed as client.oauth.

Repository resources

AsyncGitCode.repos

AsyncGitCode.repos: AsyncReposResource

Repository endpoints exposed as client.repos.

async AsyncGitCode.repos.get(*, owner: str | None = None, repo: str | None = None) Repository

Get a repository.

Parameters:
  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository name. Uses the client default when omitted.

Returns:

Repository metadata.

async AsyncGitCode.repos.list_user(*, visibility: str | None = None, affiliation: str | None = None, type: str | None = None, sort: str | None = None, direction: str | None = None, q: str | None = None, page: int | None = None, per_page: int | None = None) List[Repository]

List repositories visible to the authenticated user.

Parameters:
  • visibility – Visibility filter such as public, private, or all.

  • affiliation – Ownership filter accepted by the REST API.

  • type – Repository type filter.

  • sort – Sort field such as created or full_name.

  • direction – Sort direction.

  • q – Optional keyword filter.

  • page – Page number.

  • per_page – Page size.

Returns:

Matching repositories.

async AsyncGitCode.repos.list_for_owner(*, owner: str, type: str | None = None, sort: str | None = None, direction: str | None = None, page: int | None = None, per_page: int | None = None) List[Repository]

List public repositories for a user or owner path.

Parameters:
  • owner – Repository owner path or username.

  • type – Repository type filter.

  • sort – Sort field.

  • direction – Sort direction.

  • page – Page number.

  • per_page – Page size.

Returns:

Matching repositories.

async AsyncGitCode.repos.create_personal(*, name: str, description: str | None = None, path: str | None = None, private: bool | None = None, auto_init: bool | None = None, has_issues: bool | None = None, has_wiki: bool | None = None, default_branch: str | None = None, gitignore_template: str | None = None, license_template: str | None = None) Repository

Create a repository for the authenticated user.

Parameters:
  • name – Repository name.

  • description – Repository description.

  • path – Optional repository path.

  • private – Whether the repository should be private.

  • auto_init – Whether to initialize the repository with a README.

  • has_issues – Whether issues are enabled.

  • has_wiki – Whether wiki support is enabled.

  • default_branch – Default branch name when initializing.

  • gitignore_template – Optional gitignore template.

  • license_template – Optional license template.

Returns:

Created repository metadata.

async AsyncGitCode.repos.create_for_org(*, org: str, name: str, description: str | None = None, homepage: str | None = None, path: str | None = None, private: bool | None = None, public: int | None = None, auto_init: bool | None = None, has_issues: bool | None = None, has_wiki: bool | None = None, can_comment: bool | None = None, default_branch: str | None = None, gitignore_template: str | None = None, license_template: str | None = None) Repository

Create a repository under an organization.

Parameters:
  • org – Organization path or login.

  • name – Repository name.

  • description – Repository description.

  • homepage – Repository homepage URL.

  • path – Optional repository path.

  • private – Whether the repository should be private.

  • public – Visibility mode used by the GitCode API.

  • auto_init – Whether to initialize the repository with a README.

  • has_issues – Whether issues are enabled.

  • has_wiki – Whether wiki support is enabled.

  • can_comment – Whether comments are enabled.

  • default_branch – Default branch name when initializing.

  • gitignore_template – Optional gitignore template.

  • license_template – Optional license template.

Returns:

Created repository metadata.

async AsyncGitCode.repos.update(*, owner: str | None = None, repo: str | None = None, **changes) Repository

Update repository metadata.

Parameters:
  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository name. Uses the client default when omitted.

  • changes – Repository fields accepted by the update endpoint.

Returns:

Updated repository metadata.

async AsyncGitCode.repos.delete(*, owner: str | None = None, repo: str | None = None) None

Delete a repository.

Parameters:
  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository name. Uses the client default when omitted.

async AsyncGitCode.repos.fork(*, owner: str | None = None, repo: str | None = None, namespace: str | None = None, path: str | None = None, name: str | None = None) Repository

Fork a repository.

Parameters:
  • owner – Source repository owner path.

  • repo – Source repository name.

  • namespace – Optional destination namespace.

  • path – Optional destination repository path.

  • name – Optional destination repository name.

Returns:

Forked repository metadata.

async AsyncGitCode.repos.list_forks(*, owner: str | None = None, repo: str | None = None, sort: str | None = None, page: int | None = None, per_page: int | None = None) List[Repository]

List forks of a repository.

Parameters:
  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository name. Uses the client default when omitted.

  • sort – Optional sort field.

  • page – Page number.

  • per_page – Page size.

Returns:

Fork repositories.

async AsyncGitCode.repos.list_contributors(*, owner: str | None = None, repo: str | None = None, page: int | None = None, per_page: int | None = None) List[Contributor]

List repository contributors.

Parameters:
  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository name. Uses the client default when omitted.

  • page – Page number.

  • per_page – Page size.

Returns:

Contributors for the repository.

async AsyncGitCode.repos.list_languages(*, owner: str | None = None, repo: str | None = None) Dict[str, int]

List language statistics for a repository.

Parameters:
  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository name. Uses the client default when omitted.

Returns:

Mapping of language names to byte counts.

async AsyncGitCode.repos.list_stargazers(*, owner: str | None = None, repo: str | None = None, page: int | None = None, per_page: int | None = None) List[UserSummary]

List users who starred a repository.

Parameters:
  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository name. Uses the client default when omitted.

  • page – Page number.

  • per_page – Page size.

Returns:

Users who starred the repository.

async AsyncGitCode.repos.list_subscribers(*, owner: str | None = None, repo: str | None = None, page: int | None = None, per_page: int | None = None) List[UserSummary]

List users watching a repository.

Parameters:
  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository name. Uses the client default when omitted.

  • page – Page number.

  • per_page – Page size.

Returns:

Subscribers for the repository.

async AsyncGitCode.repos.update_module_settings(*, owner: str | None = None, repo: str | None = None, **settings) ApiStatusResponse

Update repository module settings.

Parameters:
  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository name. Uses the client default when omitted.

  • settings – Module settings accepted by the GitCode API.

Returns:

API response payload.

async AsyncGitCode.repos.update_reviewer_settings(*, owner: str | None = None, repo: str | None = None, **settings) RepositoryReviewerSettingsUpdate

Update repository reviewer settings.

Parameters:
  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository name. Uses the client default when omitted.

  • settings – Reviewer settings accepted by the GitCode API.

Returns:

API response payload.

async AsyncGitCode.repos.set_org_repo_status(*, org: str, repo: str, **payload) ApiStatusResponse

Update organization repository status metadata.

Parameters:
  • org – Organization path.

  • repo – Repository path.

  • payload – Status fields accepted by the API.

Returns:

API response payload.

async AsyncGitCode.repos.transfer_to_org(*, org: str, repo: str, **payload) ApiStatusResponse

Transfer a repository to an organization.

Parameters:
  • org – Destination organization path.

  • repo – Repository path.

  • payload – Transfer options accepted by the API.

Returns:

API response payload.

async AsyncGitCode.repos.get_transition(*, owner: str | None = None, repo: str | None = None) RepositoryPermissionMode

Get repository transition settings.

Parameters:
  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository name. Uses the client default when omitted.

Returns:

Transition configuration.

async AsyncGitCode.repos.update_transition(*, owner: str | None = None, repo: str | None = None, **payload) ApiStatusResponse

Update repository transition settings.

Parameters:
  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository name. Uses the client default when omitted.

  • payload – Transition settings accepted by the API.

Returns:

API response payload.

async AsyncGitCode.repos.update_push_config(*, owner: str | None = None, repo: str | None = None, **payload) RepositoryPushConfig

Update repository push configuration.

Parameters:
  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository name. Uses the client default when omitted.

  • payload – Push configuration values accepted by the API.

Returns:

API response payload.

async AsyncGitCode.repos.get_push_config(*, owner: str | None = None, repo: str | None = None) RepositoryPushConfig

Get repository push configuration.

Parameters:
  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository name. Uses the client default when omitted.

Returns:

Push configuration payload.

async AsyncGitCode.repos.upload_image(*, owner: str | None = None, repo: str | None = None, **payload) RepositoryUploadResult

Upload an image asset for a repository.

Parameters:
  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository name. Uses the client default when omitted.

  • payload – Upload fields accepted by the API.

Returns:

Uploaded image metadata.

async AsyncGitCode.repos.upload_file(*, owner: str | None = None, repo: str | None = None, **payload) RepositoryUploadResult

Upload a file asset for a repository.

Parameters:
  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository name. Uses the client default when omitted.

  • payload – Upload fields accepted by the API.

Returns:

Uploaded file metadata.

async AsyncGitCode.repos.update_repo_settings(*, owner: str | None = None, repo: str | None = None, **payload) RepositorySettings

Update repository settings.

Parameters:
  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository name. Uses the client default when omitted.

  • payload – Settings fields accepted by the API.

Returns:

API response payload.

async AsyncGitCode.repos.get_repo_settings(*, owner: str | None = None, repo: str | None = None) RepositorySettings

Get repository settings.

Parameters:
  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository name. Uses the client default when omitted.

Returns:

Repository settings payload.

async AsyncGitCode.repos.get_pull_request_settings(*, owner: str | None = None, repo: str | None = None) PullRequestSettings

Get pull request settings for a repository.

Parameters:
  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository name. Uses the client default when omitted.

Returns:

Pull request settings payload.

async AsyncGitCode.repos.update_pull_request_settings(*, owner: str | None = None, repo: str | None = None, **payload) PullRequestSettings

Update pull request settings for a repository.

Parameters:
  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository name. Uses the client default when omitted.

  • payload – Pull request settings accepted by the API.

Returns:

API response payload.

async AsyncGitCode.repos.set_member_role(*, username: str, owner: str | None = None, repo: str | None = None, permission: str | None = None) RepoMember

Set a repository member role.

Parameters:
  • username – Member username or login.

  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository name. Uses the client default when omitted.

  • permission – Permission or role name accepted by the API.

Returns:

API response payload.

async AsyncGitCode.repos.transfer(*, owner: str | None = None, repo: str | None = None, **payload) RepositoryTransferResult

Transfer a repository to another owner or namespace.

Parameters:
  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository name. Uses the client default when omitted.

  • payload – Transfer options accepted by the API.

Returns:

API response payload.

async AsyncGitCode.repos.list_customized_roles(*, owner: str | None = None, repo: str | None = None) List[RepositoryCustomizedRole]

List customized roles for a repository.

Parameters:
  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository name. Uses the client default when omitted.

Returns:

Customized role definitions.

async AsyncGitCode.repos.get_download_statistics(*, owner: str | None = None, repo: str | None = None, **params) RepositoryDownloadStatistics

Get download statistics for a repository.

Parameters:
  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository name. Uses the client default when omitted.

  • params – Query parameters accepted by the statistics endpoint.

Returns:

Download statistics payload.

async AsyncGitCode.repos.get_contributor_statistics(*, owner: str | None = None, repo: str | None = None) List[ContributorStatistics]

Get code contribution statistics for a repository.

Parameters:
  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository name. Uses the client default when omitted.

Returns:

Contributor statistics payload.

async AsyncGitCode.repos.list_events(*, owner: str | None = None, repo: str | None = None, page: int | None = None, per_page: int | None = None) List[APIObject]

List repository events.

Parameters:
  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository name. Uses the client default when omitted.

  • page – Page number.

  • per_page – Page size.

Returns:

Repository event payloads.

AsyncGitCode.contents

AsyncGitCode.contents: AsyncRepoContentsResource

Repository content endpoints exposed as client.contents.

async AsyncGitCode.contents.get(*, path: str, owner: str | None = None, repo: str | None = None, ref: str | None = None) ContentObject

Get a file or directory entry from a repository.

Parameters:
  • path – Repository-relative file path.

  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository name. Uses the client default when omitted.

  • ref – Optional branch, tag, or commit SHA.

Returns:

Content metadata and payload details.

async AsyncGitCode.contents.create(*, path: str, content: str, message: str, owner: str | None = None, repo: str | None = None, branch: str | None = None, author_name: str | None = None, author_email: str | None = None) CommitResult

Create a file in a repository.

Parameters:
  • path – Repository-relative file path.

  • content – File content, typically base64-encoded for this API.

  • message – Commit message.

  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository name. Uses the client default when omitted.

  • branch – Optional target branch.

  • author_name – Optional commit author name.

  • author_email – Optional commit author email.

Returns:

Commit result payload.

async AsyncGitCode.contents.update(*, path: str, content: str, message: str, sha: str, owner: str | None = None, repo: str | None = None, branch: str | None = None, author_name: str | None = None, author_email: str | None = None) CommitResult

Update a file in a repository.

Parameters:
  • path – Repository-relative file path.

  • content – Updated file content, typically base64-encoded.

  • message – Commit message.

  • sha – Current blob SHA required by the API.

  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository name. Uses the client default when omitted.

  • branch – Optional target branch.

  • author_name – Optional commit author name.

  • author_email – Optional commit author email.

Returns:

Commit result payload.

async AsyncGitCode.contents.delete(*, path: str, message: str, sha: str, owner: str | None = None, repo: str | None = None, branch: str | None = None, author_name: str | None = None, author_email: str | None = None) CommitResult

Delete a file from a repository.

Parameters:
  • path – Repository-relative file path.

  • message – Commit message.

  • sha – Current blob SHA required by the API.

  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository name. Uses the client default when omitted.

  • branch – Optional target branch.

  • author_name – Optional commit author name.

  • author_email – Optional commit author email.

Returns:

Commit result payload.

async AsyncGitCode.contents.list_paths(*, owner: str | None = None, repo: str | None = None, ref_name: str | None = None, file_name: str | None = None) List[str]

List repository paths known to GitCode.

Parameters:
  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository name. Uses the client default when omitted.

  • ref_name – Optional ref name to inspect.

  • file_name – Optional filename filter.

Returns:

Matching repository paths.

async AsyncGitCode.contents.get_tree(*, sha: str, owner: str | None = None, repo: str | None = None, recursive: int | None = None, page: int | None = None, per_page: int | None = None) Tree

Get a Git tree object.

Parameters:
  • sha – Tree SHA.

  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository name. Uses the client default when omitted.

  • recursive – Pass 1 to fetch the tree recursively (query parameter per Repository API).

  • page – Page number for large trees.

  • per_page – Page size for large trees.

Returns:

Tree metadata and entries.

async AsyncGitCode.contents.get_blob(*, sha: str, owner: str | None = None, repo: str | None = None) Blob

Get a Git blob object by SHA.

Parameters:
  • sha – Blob SHA.

  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository name. Uses the client default when omitted.

Returns:

Blob metadata and content.

async AsyncGitCode.contents.get_raw(*, path: str, owner: str | None = None, repo: str | None = None, ref: str | None = None) bytes

Download raw file bytes from a repository.

Parameters:
  • path – Repository-relative file path.

  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository name. Uses the client default when omitted.

  • ref – Optional branch, tag, or commit SHA.

Returns:

Raw file bytes.

AsyncGitCode.branches

AsyncGitCode.branches: AsyncBranchesResource

Repository branch endpoints exposed as client.branches.

async AsyncGitCode.branches.list(*, owner: str | None = None, repo: str | None = None, sort: str | None = None, direction: str | None = None, page: int | None = None, per_page: int | None = None) List[Branch]

List branches in a repository.

Parameters:
  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository name. Uses the client default when omitted.

  • sort – Optional sort field such as name or updated.

  • direction – Sort direction, usually asc or desc.

  • page – Page number.

  • per_page – Page size.

Returns:

Repository branches.

async AsyncGitCode.branches.get(*, branch: str, owner: str | None = None, repo: str | None = None) BranchDetail

Get a single branch.

Parameters:
  • branch – Branch name.

  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository name. Uses the client default when omitted.

Returns:

Branch details.

async AsyncGitCode.branches.create(*, branch: str, ref: str, owner: str | None = None, repo: str | None = None) Branch

Create a branch from an existing ref.

Parameters:
  • branch – New branch name.

  • ref – Starting ref such as a branch, tag, or commit SHA.

  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository name. Uses the client default when omitted.

Returns:

Created branch details.

async AsyncGitCode.branches.list_protected(*, owner: str | None = None, repo: str | None = None) List[ProtectedBranch]

List protected branch rules for a repository.

Parameters:
  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository name. Uses the client default when omitted.

Returns:

Protected branch rules.

AsyncGitCode.commits

AsyncGitCode.commits: AsyncCommitsResource

Repository commit endpoints exposed as client.commits.

async AsyncGitCode.commits.list(*, owner: str | None = None, repo: str | None = None, sha: str | None = None, path: str | None = None, page: int | None = None, per_page: int | None = None) List[CommitSummary]

List commits in a repository.

Parameters:
  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository name. Uses the client default when omitted.

  • sha – Optional starting SHA or ref.

  • path – Optional file path filter.

  • page – Page number.

  • per_page – Page size.

Returns:

Matching commits.

async AsyncGitCode.commits.get(*, sha: str, owner: str | None = None, repo: str | None = None) Commit

Get a single commit.

Parameters:
  • sha – Commit SHA or branch name accepted by the API.

  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository name. Uses the client default when omitted.

Returns:

Commit details.

async AsyncGitCode.commits.compare(*, base: str, head: str, owner: str | None = None, repo: str | None = None) CommitComparison

Compare two refs in a repository.

Parameters:
  • base – Base commit SHA, branch, or tag.

  • head – Head commit SHA, branch, or tag.

  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository name. Uses the client default when omitted.

Returns:

Commit comparison payload.

async AsyncGitCode.commits.list_comments(*, owner: str | None = None, repo: str | None = None, page: int | None = None, per_page: int | None = None) List[CommitComment]

List commit comments for a repository.

Parameters:
  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository name. Uses the client default when omitted.

  • page – Page number.

  • per_page – Page size.

Returns:

Commit comments.

async AsyncGitCode.commits.get_comment(*, comment_id: int | str, owner: str | None = None, repo: str | None = None) CommitComment

Get a single commit comment.

Parameters:
  • comment_id – Commit comment identifier.

  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository name. Uses the client default when omitted.

Returns:

Commit comment details.

async AsyncGitCode.commits.create_comment(*, sha: str, body: str, owner: str | None = None, repo: str | None = None, path: str | None = None, position: int | None = None) CommitComment

Create a comment on a commit.

Parameters:
  • sha – Commit SHA.

  • body – Comment body.

  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository name. Uses the client default when omitted.

  • path – Optional file path associated with the comment.

  • position – Optional diff position.

Returns:

Created commit comment.

async AsyncGitCode.commits.update_comment(*, comment_id: int | str, body: str, owner: str | None = None, repo: str | None = None) CommitComment

Update a commit comment.

Parameters:
  • comment_id – Commit comment identifier.

  • body – Updated comment body.

  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository name. Uses the client default when omitted.

Returns:

Updated commit comment.

async AsyncGitCode.commits.delete_comment(*, comment_id: int | str, owner: str | None = None, repo: str | None = None) None

Delete a commit comment.

Parameters:
  • comment_id – Commit comment identifier.

  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository name. Uses the client default when omitted.

Collaboration resources

AsyncGitCode.issues

AsyncGitCode.issues: AsyncIssuesResource

Issue endpoints exposed as client.issues.

async AsyncGitCode.issues.list(*, owner: str | None = None, repo: str | None = None, state: str | None = None, sort: str | None = None, direction: str | None = None, page: int | None = None, per_page: int | None = None) List[Issue]

List issues for a repository.

Parameters:
  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository name. Uses the client default when omitted.

  • state – Issue state filter such as open or closed (see Issues API).

  • sort – Optional sort field.

  • direction – Optional sort direction.

  • page – Page number.

  • per_page – Page size.

Returns:

Matching issues.

async AsyncGitCode.issues.get(*, number: int | str, owner: str | None = None, repo: str | None = None) Issue

Get a single issue by number.

Parameters:
  • number – Repository-local issue number.

  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository name. Uses the client default when omitted.

Returns:

Issue details.

async AsyncGitCode.issues.create(*, owner: str, repo: str | None = None, title: str, body: str | None = None, assignee: str | None = None, labels: List[str] | None = None, milestone: int | str | None = None, security_hole: str | None = None) Issue

Create an issue for a repository.

Parameters:
  • owner – Repository owner path.

  • repo – Repository name. Uses the client default when omitted.

  • title – Issue title.

  • body – Optional issue description.

  • assignee – Optional assignee username.

  • labels – Optional label names (comma-separated in the JSON body).

  • milestone – Optional milestone identifier.

  • security_hole – Whether the issue is private; form field described in the Issues API.

Returns:

Created issue details.

async AsyncGitCode.issues.update(*, number: int | str, owner: str, repo: str | None = None, title: str | None = None, body: str | None = None, state: str | None = None, assignee: str | None = None, labels: List[str] | None = None, milestone: int | str | None = None, security_hole: str | None = None) Issue

Update an existing issue.

Parameters:
  • number – Repository-local issue number.

  • owner – Repository owner path.

  • repo – Repository name. Uses the client default when omitted.

  • title – Updated issue title.

  • body – Updated issue description.

  • state – Updated state such as reopen or close.

  • assignee – Updated assignee username.

  • labels – Replacement label names (comma-separated in the JSON body).

  • milestone – Updated milestone identifier.

  • security_hole – Whether the issue is private; form field described in the Issues API.

Returns:

Updated issue details.

async AsyncGitCode.issues.list_comments(*, number: int | str, owner: str | None = None, repo: str | None = None, page: int | None = None, per_page: int | None = None) List[IssueComment]

List comments for an issue.

Parameters:
  • number – Repository-local issue number.

  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository path (name). Uses the client default when omitted.

  • page – Current page number (query).

  • per_page – Page size; maximum per REST API is typically 100.

Returns:

Issue comments.

async AsyncGitCode.issues.create_comment(*, number: int | str, body: str, owner: str | None = None, repo: str | None = None) IssueComment

Create a comment on an issue.

Parameters:
  • number – Repository-local issue number.

  • body – Comment body text.

  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository path. Uses the client default when omitted.

Returns:

Created comment.

async AsyncGitCode.issues.get_comment(*, comment_id: int | str, owner: str | None = None, repo: str | None = None) IssueComment

Get a single issue comment by identifier.

Parameters:
  • comment_id – Comment id from the API.

  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository path. Uses the client default when omitted.

Returns:

Issue comment.

async AsyncGitCode.issues.update_comment(*, comment_id: int | str, body: str, owner: str | None = None, repo: str | None = None) IssueComment

Update an issue comment.

Parameters:
  • comment_id – Comment id from the API.

  • body – Updated comment body.

  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository path. Uses the client default when omitted.

Returns:

Updated comment.

async AsyncGitCode.issues.delete_comment(*, comment_id: int | str, owner: str | None = None, repo: str | None = None) None

Delete an issue comment.

Parameters:
  • comment_id – Comment id from the API.

  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository path. Uses the client default when omitted.

async AsyncGitCode.issues.list_pull_requests(*, number: int | str, owner: str | None = None, repo: str | None = None) List[PullRequest]

List pull requests associated with an issue.

Parameters:
  • number – Repository-local issue number.

  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository path. Uses the client default when omitted.

Returns:

Pull requests linked to the issue.

async AsyncGitCode.issues.add_labels(*, number: int | str, labels: List[str], owner: str | None = None, repo: str | None = None) List[Label]

Add labels to an issue.

Parameters:
  • number – Repository-local issue number.

  • labels – Label names to add (request body is a JSON array per REST API).

  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository path. Uses the client default when omitted.

Returns:

Labels on the issue after the operation.

async AsyncGitCode.issues.remove_label(*, number: int | str, name: str, owner: str | None = None, repo: str | None = None) None

Remove one label from an issue (REST path includes the label name).

Parameters:
  • number – Repository-local issue number.

  • name – Label name to remove.

  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository path. Uses the client default when omitted.

async AsyncGitCode.issues.list_enterprise(*, enterprise: str, **params) List[Issue]

List enterprise issues visible to the caller.

Parameters:
  • enterprise – Enterprise path or login.

  • params – Additional query parameters accepted by GET .../enterprises/{enterprise}/issues.

Returns:

Enterprise-scoped issues.

async AsyncGitCode.issues.list_user(**params) List[Issue]

List issues for the authenticated user.

Parameters:

params – Query parameters for GET /user/issues (filters, pagination, etc.).

Returns:

Issues assigned to or authored by the user, per API rules.

async AsyncGitCode.issues.list_org(*, org: str, **params) List[Issue]

List organization issues visible to the current user.

Parameters:
  • org – Organization path or login.

  • params – Query parameters for GET .../orgs/{org}/issues.

Returns:

Organization-scoped issues.

async AsyncGitCode.issues.get_enterprise_issue(*, enterprise: str, number: int | str) Issue

Get a specific enterprise issue.

Parameters:
  • enterprise – Enterprise path or login.

  • number – Enterprise issue id or number as accepted by the API path.

Returns:

Issue payload.

async AsyncGitCode.issues.list_enterprise_comments(*, enterprise: str, number: int | str, **params) List[IssueComment]

List comments for an enterprise issue.

Parameters:
  • enterprise – Enterprise path or login.

  • number – Enterprise issue identifier in the path.

  • params – Optional pagination or filter query parameters.

Returns:

Comments on the enterprise issue.

async AsyncGitCode.issues.list_enterprise_labels(*, enterprise: str, issue_id: int | str) List[Label]

List labels attached to an enterprise issue.

Parameters:
  • enterprise – Enterprise path or login.

  • issue_id – Enterprise issue id in the path segment .../issues/{issue_id}/labels.

Returns:

Labels on the issue.

async AsyncGitCode.issues.list_operation_logs(*, owner: str, number: int | str, page: int | None = None, per_page: int | None = None) List[IssueOperationLog]

List operation (audit) logs for an issue.

Parameters:
  • owner – Repository owner path (path segment repos/{owner}/... for this endpoint).

  • number – Repository-local issue number.

  • page – Page number.

  • per_page – Page size.

Returns:

Operation log entries.

async AsyncGitCode.issues.list_templates(*, owner: str | None = None, repo: str | None = None) List[RepositoryGitCodeTemplate]

List active issue templates under .gitcode/ for this repository.

Matches Markdown (.md, .markdown) and YAML (.yml / .yaml) paths whose names start with ISSUE_TEMPLATE under .gitcode/ (case-insensitive), including files inside localized directories such as .gitcode/ISSUE_TEMPLATE.en/.

Resolution tries the repository, then the owner’s .gitcode repository, then any parent main and parent/.gitcode pairs discovered from forks (each candidate is inspected with GET /repos/{owner}/{repo}; when fork is true, its parent’s repos are appended, deduplicated, and visited in order). The first source with matching templates wins.

Version 1.2.19: Now also supporting GitHub-mirrored repos with a .github/ folder.

Parameters:
  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository name. Uses the client default when omitted.

Returns:

Template metadata entries (paths and SHAs); empty when none match.

async AsyncGitCode.issues.get_template(*, path: str, owner: str | None = None, repo: str | None = None, encoding: str = 'utf-8', **decoding_kwargs) str

Load a single issue template file body from the default branch.

Uses the same resolution order as list_templates(). The path must match the active issue template naming convention (see GitCode .gitcode documentation).

Parameters:
  • path – Repository-relative path such as .gitcode/ISSUE_TEMPLATE_bug.md or .gitcode/ISSUE_TEMPLATE/config.yml.

  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository name. Uses the client default when omitted.

  • encoding – Codec to use when decoding raw file bytes. Default utf-8.

  • decoding_kwargs – Keyword arguments forwarded to bytes.decode(), such as errors ("strict", "ignore", or "replace").

Returns:

Decoded template file contents.

AsyncGitCode.pulls

AsyncGitCode.pulls: AsyncPullsResource

Pull request endpoints exposed as client.pulls.

async AsyncGitCode.pulls.list(*, owner: str | None = None, repo: str | None = None, state: str | None = None, sort: str | None = None, direction: str | None = None, page: int | None = None, per_page: int | None = None, **params) List[PullRequest] | PullRequestCount

List pull requests for a repository.

When only_count is true in params (or passed via **params), the API returns a JSON object with counts per state instead of an array (see Pull Request API).

Parameters:
  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository path (name). Uses the client default when omitted.

  • state – PR state filter: all, open, closed, locked, merged (default all in API).

  • sort – Sort field, typically created or updated.

  • directionasc or desc (API default is usually desc).

  • page – Current page number.

  • per_page – Page size (max 100 per API documentation).

  • params – Extra query parameters from the Pull Request API, for example base, since, author, assignee, reviewer, milestone_number, labels (comma-separated), merged_after, merged_before, created_after, created_before, updated_after, updated_before, only_count (boolean), and ISO 8601 timestamps (URL-encoded when sent).

Returns:

A list of pull requests, or an APIObject for count-only responses.

async AsyncGitCode.pulls.get(*, number: int | str, owner: str | None = None, repo: str | None = None) PullRequest

Get a single pull request.

Parameters:
  • number – Pull request number in the repository.

  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository path. Uses the client default when omitted.

Returns:

Pull request details.

async AsyncGitCode.pulls.create(*, title: str, head: str, base: str, owner: str | None = None, repo: str | None = None, body: str | None = None, draft: bool | None = None, assignees: List[str] | None = None, testers: List[str] | None = None, labels: List[str] | None = None, milestone_number: int | None = None, issue: str | None = None, prune_source_branch: bool | None = None, squash: bool | None = None, squash_commit_message: str | None = None, fork_path: str | None = None) PullRequest

Create a pull request.

Parameters:
  • title – Pull request title.

  • head – Source branch ref (head branch, in forks use owner:branch like “SushiNinja:develop”).

  • base – Target branch ref (base branch).

  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository path. Uses the client default when omitted.

  • body – Description body.

  • draft – Whether to create as draft.

  • assignees – Assignee logins; sent as a comma-separated string per API.

  • testers – Tester logins; comma-separated in the JSON body.

  • labels – Label names; comma-separated in the JSON body.

  • milestone_number – Target milestone number.

  • issue – Related issue reference when supported by the API.

  • prune_source_branch – Whether to delete the source branch after merge when applicable.

  • squash – Squash-merge preference where supported.

  • squash_commit_message – Custom squash commit message.

  • fork_path – Fork owner/repo when opening a PR from a fork, like “SushiNinja/agent-core-contrib”.

Returns:

Created pull request.

async AsyncGitCode.pulls.update(*, number: int | str, owner: str | None = None, repo: str | None = None, title: str | None = None, body: str | None = None, state: str | None = None, base: str | None = None, labels: List[str] | None = None, draft: bool | None = None) PullRequest

Update a pull request.

Parameters:
  • number – Pull request number in the repository.

  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository path. Uses the client default when omitted.

  • title – New title.

  • body – New description.

  • state – New state as accepted by the API.

  • base – New base branch name.

  • labels – Replacement labels; comma-separated in the JSON body.

  • draft – Draft flag.

Returns:

Updated pull request.

async AsyncGitCode.pulls.merge(*, number: int | str, owner: str | None = None, repo: str | None = None, merge_commit_message: str | None = None, squash: bool | None = None) MergeResult

Merge a pull request.

Parameters:
  • number – Pull request number.

  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository path. Uses the client default when omitted.

  • merge_commit_message – Optional merge commit message.

  • squash – Whether to squash merge when supported.

Returns:

Merge result payload.

async AsyncGitCode.pulls.get_merge_status(*, number: int | str, owner: str | None = None, repo: str | None = None) MergeStatus

Get mergeability status for a pull request (GET on the merge resource).

Parameters:
  • number – Pull request number.

  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository path. Uses the client default when omitted.

Returns:

Merge status / mergeability information.

async AsyncGitCode.pulls.list_commits(*, number: int | str, owner: str | None = None, repo: str | None = None) List[APIObject]

List commits included in a pull request.

Parameters:
  • number – Pull request number.

  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository path. Uses the client default when omitted.

Returns:

Commit objects (wrapped as APIObject).

async AsyncGitCode.pulls.list_files(*, number: int | str, owner: str | None = None, repo: str | None = None) List[PullRequestFile]

List files changed by a pull request.

Parameters:
  • number – Pull request number.

  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository path. Uses the client default when omitted.

Returns:

File change entries.

async AsyncGitCode.pulls.list_comments(*, number: int | str, owner: str | None = None, repo: str | None = None, page: int | None = None, per_page: int | None = None) List[PullRequestComment]

List comments on a pull request.

Parameters:
  • number – Pull request number.

  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository path. Uses the client default when omitted.

  • page – Page number.

  • per_page – Page size.

Returns:

Pull request review comments.

async AsyncGitCode.pulls.create_comment(*, number: int | str, body: str, owner: str | None = None, repo: str | None = None, commit_id: str | None = None, path: str | None = None, position: int | None = None) PullRequestComment

Create a pull request (review) comment.

Parameters:
  • number – Pull request number.

  • body – Comment body.

  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository path. Uses the client default when omitted.

  • commit_id – Commit SHA the comment applies to.

  • path – File path in the diff.

  • position – Line or diff position as defined by the API.

Returns:

Created comment.

async AsyncGitCode.pulls.get_comment(*, comment_id: int | str, owner: str | None = None, repo: str | None = None) PullRequestComment

Get a single pull request comment by id (global comment endpoint).

Parameters:
  • comment_id – Comment id.

  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository path. Uses the client default when omitted.

Returns:

Pull request comment.

async AsyncGitCode.pulls.update_comment(*, comment_id: int | str, body: str, owner: str | None = None, repo: str | None = None) PullRequestComment

Update a pull request comment.

Parameters:
  • comment_id – Comment id.

  • body – Updated body.

  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository path. Uses the client default when omitted.

Returns:

Updated comment.

async AsyncGitCode.pulls.delete_comment(*, comment_id: int | str, owner: str | None = None, repo: str | None = None) None

Delete a pull request comment.

Parameters:
  • comment_id – Comment id.

  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository path. Uses the client default when omitted.

async AsyncGitCode.pulls.list_labels(*, number: int | str, owner: str | None = None, repo: str | None = None) List[Label]

List labels attached to a pull request.

Parameters:
  • number – Pull request number.

  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository path. Uses the client default when omitted.

Returns:

Labels on the pull request.

async AsyncGitCode.pulls.add_labels(*, number: int | str, labels: List[str], owner: str | None = None, repo: str | None = None) List[Label]

Add labels to a pull request.

Parameters:
  • number – Pull request number.

  • labels – Label names (JSON array body per API).

  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository path. Uses the client default when omitted.

Returns:

Labels after the operation.

async AsyncGitCode.pulls.replace_labels(*, number: int | str, labels: List[str], owner: str | None = None, repo: str | None = None) List[Label]

Replace all labels on a pull request.

Parameters:
  • number – Pull request number.

  • labels – Complete new label set (JSON array body).

  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository path. Uses the client default when omitted.

Returns:

Labels after replacement.

async AsyncGitCode.pulls.remove_label(*, number: int | str, label: str, owner: str | None = None, repo: str | None = None) None

Remove a label from a pull request.

Parameters:
  • number – Pull request number.

  • label – Label name to remove.

  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository path. Uses the client default when omitted.

async AsyncGitCode.pulls.request_review(*, number: int | str, owner: str | None = None, repo: str | None = None, event: str, body: str | None = None) None

Submit a pull request review event (approve, request changes, etc., per API).

Parameters:
  • number – Pull request number.

  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository path. Uses the client default when omitted.

  • event – Review event name as required by GitCode (see API docs).

  • body – Optional comment body accompanying the event.

Returns:

Review result object.

async AsyncGitCode.pulls.list_operation_logs(*, number: int | str, owner: str | None = None, repo: str | None = None, **params) List[PullRequestOperationLog]

List operation logs for a pull request.

Parameters:
  • number – Pull request number.

  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository path. Uses the client default when omitted.

  • params – Additional query parameters accepted by the operate_logs endpoint.

Returns:

Log entries as generic API objects.

async AsyncGitCode.pulls.request_test(*, number: int | str, owner: str | None = None, repo: str | None = None, **payload) None

Request testing for a pull request.

Parameters:
  • number – Pull request number.

  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository path. Uses the client default when omitted.

  • payload – JSON fields required by the test request endpoint.

Returns:

Test request result.

async AsyncGitCode.pulls.update_testers(*, number: int | str, testers: List[str], owner: str | None = None, repo: str | None = None) None

Replace pull request testers.

Parameters:
  • number – Pull request number.

  • testers – New tester list; serialized as a comma-separated testers field in JSON.

  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository path. Uses the client default when omitted.

Returns:

API response payload.

async AsyncGitCode.pulls.add_testers(*, number: int | str, testers: List[str], owner: str | None = None, repo: str | None = None) List[UserSummary]

Add testers to a pull request.

Parameters:
  • number – Pull request number.

  • testers – Usernames to add; comma-separated in the JSON body.

  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository path. Uses the client default when omitted.

Returns:

API response payload.

async AsyncGitCode.pulls.update_assignees(*, number: int | str, assignees: List[str], owner: str | None = None, repo: str | None = None) None

Replace pull request assignees.

Parameters:
  • number – Pull request number.

  • assignees – New assignee list; comma-separated in the JSON body.

  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository path. Uses the client default when omitted.

Returns:

API response payload.

async AsyncGitCode.pulls.add_assignees(*, number: int | str, assignees: List[str], owner: str | None = None, repo: str | None = None) PullRequestAssigneeCount

Add assignees to a pull request.

Parameters:
  • number – Pull request number.

  • assignees – Usernames to add; comma-separated in the JSON body.

  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository path. Uses the client default when omitted.

Returns:

API response payload.

async AsyncGitCode.pulls.remove_assignees(*, number: int | str, assignees: List[str], owner: str | None = None, repo: str | None = None) None

Remove assignees from a pull request.

Parameters:
  • number – Pull request number.

  • assignees – Usernames to remove; comma-separated in the JSON body.

  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository path. Uses the client default when omitted.

async AsyncGitCode.pulls.list_issues(*, number: int | str, owner: str | None = None, repo: str | None = None) List[Issue]

List issues linked to a pull request.

Parameters:
  • number – Pull request number.

  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository path. Uses the client default when omitted.

Returns:

Linked issues.

async AsyncGitCode.pulls.list_enterprise(*, enterprise: str, **params) List[PullRequest]

List enterprise pull requests.

Parameters:
  • enterprise – Enterprise path or login.

  • params – Query parameters for the enterprise pull_requests listing.

Returns:

Pull requests in the enterprise scope.

async AsyncGitCode.pulls.list_org(*, org: str, **params) List[PullRequest]

List pull requests for an organization scope.

Parameters:
  • org – Organization path (GET .../org/{org}/pull_requests).

  • params – Query parameters accepted by that listing.

Returns:

Organization-scoped pull requests.

async AsyncGitCode.pulls.list_issue_pull_requests(*, enterprise: str, number: int | str) List[PullRequest]

List pull requests associated with an enterprise issue.

Parameters:
  • enterprise – Enterprise path or login.

  • number – Enterprise issue number or id in the path.

Returns:

Related pull requests.

async AsyncGitCode.pulls.list_templates(*, owner: str | None = None, repo: str | None = None) List[RepositoryGitCodeTemplate]

List active pull request templates under .gitcode/ for this repository.

Resolution tries the repository, then the owner’s .gitcode repository, then any parent main and parent/.gitcode pairs discovered from forks (each candidate is inspected with GET /repos/{owner}/{repo}; when fork is true, its parent’s repos are appended, deduplicated, and visited in order). The first source with matching templates wins.

Version 1.2.19: Now also supporting GitHub-mirrored repos with a .github/ folder.

Parameters:
  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository path. Uses the client default when omitted.

Returns:

Template metadata entries (paths and SHAs); empty when none match.

async AsyncGitCode.pulls.get_template(*, path: str, owner: str | None = None, repo: str | None = None, encoding: str = 'utf-8', **decoding_kwargs) str

Load a single pull request template file body from the default branch.

Uses the same resolution order as list_templates(). The path must match the active pull request template naming convention (see GitCode .gitcode documentation).

Parameters:
  • path – Repository-relative path such as .gitcode/PULL_REQUEST_TEMPLATE.md.

  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository path. Uses the client default when omitted.

  • encoding – Codec to use when decoding raw file bytes. Default utf-8.

  • decoding_kwargs – Keyword arguments forwarded to bytes.decode(), such as errors ("strict", "ignore", or "replace").

Returns:

Decoded template file contents.

AsyncGitCode.labels

AsyncGitCode.labels: AsyncLabelsResource

Label endpoints exposed as client.labels.

async AsyncGitCode.labels.list(*, owner: str | None = None, repo: str | None = None) List[Label]

List repository labels.

Parameters:
  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository path. Uses the client default when omitted.

Returns:

All labels defined on the repository.

async AsyncGitCode.labels.create(*, name: str, color: str, owner: str | None = None, repo: str | None = None) Label

Create a repository label.

Parameters:
  • name – Label name.

  • color – Label color (typically a #RRGGBB hex string per API examples).

  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository path. Uses the client default when omitted.

Returns:

Created label.

async AsyncGitCode.labels.update(*, original_name: str, owner: str | None = None, repo: str | None = None, name: str | None = None, color: str | None = None) Label

Update a repository label.

Parameters:
  • original_name – Current label name in the URL path.

  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository path. Uses the client default when omitted.

  • name – New label name, if renaming.

  • color – New color value.

Returns:

Updated label.

async AsyncGitCode.labels.delete(*, name: str, owner: str | None = None, repo: str | None = None) None

Delete a repository label.

Parameters:
  • name – Label name in the path.

  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository path. Uses the client default when omitted.

async AsyncGitCode.labels.clear_issue_labels(*, number: int | str, owner: str | None = None, repo: str | None = None) None

Remove all labels from an issue.

Parameters:
  • number – Repository-local issue number.

  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository path. Uses the client default when omitted.

async AsyncGitCode.labels.replace_issue_labels(*, number: int | str, labels: List[str], owner: str | None = None, repo: str | None = None) List[Label]

Replace all labels on an issue.

Parameters:
  • number – Repository-local issue number.

  • labels – Complete new label set (JSON array body).

  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository path. Uses the client default when omitted.

Returns:

Labels after replacement.

async AsyncGitCode.labels.list_enterprise(*, enterprise: str, search: str | None = None, direction: str | None = None, page: int | None = None, per_page: int | None = None, api_version: str = 'v5') List[Label]

List labels for an enterprise, optionally using a different API version.

Parameters:
  • enterprise – Enterprise path or login.

  • search – Optional name search string.

  • direction – Sort direction for results.

  • page – Page number.

  • per_page – Page size.

  • api_versionv5 uses /api/v5/...; other values build /api/{version}/... on the same host.

Returns:

Enterprise label definitions.

AsyncGitCode.milestones

AsyncGitCode.milestones: AsyncMilestonesResource

Milestone endpoints exposed as client.milestones.

async AsyncGitCode.milestones.list(*, owner: str | None = None, repo: str | None = None, **params) List[Milestone]

List milestones for a repository.

Parameters:
  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository path. Uses the client default when omitted.

  • params – Query parameters accepted by the milestones listing (state, sort, pagination, etc.).

Returns:

Milestones.

async AsyncGitCode.milestones.get(*, number: int | str, owner: str | None = None, repo: str | None = None) Milestone

Get a single milestone.

Parameters:
  • number – Milestone number in the repository.

  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository path. Uses the client default when omitted.

Returns:

Milestone details.

async AsyncGitCode.milestones.create(*, title: str, due_on: str, owner: str | None = None, repo: str | None = None, description: str | None = None) Milestone

Create a milestone.

Parameters:
  • title – Milestone title.

  • due_on – Due date string in the format expected by the API (often ISO 8601).

  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository path. Uses the client default when omitted.

  • description – Optional description.

Returns:

Created milestone.

async AsyncGitCode.milestones.update(*, number: int | str, title: str, due_on: str, owner: str | None = None, repo: str | None = None, description: str | None = None, state: str | None = None) Milestone

Update a milestone.

Parameters:
  • number – Milestone number.

  • title – Updated title.

  • due_on – Updated due date.

  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository path. Uses the client default when omitted.

  • description – Updated description.

  • state – Milestone state such as open or closed per API.

Returns:

Updated milestone.

async AsyncGitCode.milestones.delete(*, number: int | str, owner: str | None = None, repo: str | None = None) None

Delete a milestone.

Parameters:
  • number – Milestone number.

  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository path. Uses the client default when omitted.

AsyncGitCode.members

AsyncGitCode.members: AsyncMembersResource

Repository member endpoints exposed as client.members.

async AsyncGitCode.members.add_or_update(*, username: str, owner: str | None = None, repo: str | None = None, permission: str | None = None) RepoMember

Add or update repository member permissions.

Parameters:
  • username – Collaborator login.

  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository path. Uses the client default when omitted.

  • permission – Permission string (for example pull, push, admin per GitCode API).

Returns:

Collaborator record.

async AsyncGitCode.members.remove(*, username: str, owner: str | None = None, repo: str | None = None) None

Remove a repository member.

Parameters:
  • username – Collaborator login to remove.

  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository path. Uses the client default when omitted.

async AsyncGitCode.members.list(*, owner: str | None = None, repo: str | None = None, page: int | None = None, per_page: int | None = None) List[RepoCollaborator]

List repository members (collaborators).

Parameters:
  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository path. Uses the client default when omitted.

  • page – Page number.

  • per_page – Page size.

Returns:

Collaborators with permission metadata.

async AsyncGitCode.members.get(*, username: str, owner: str | None = None, repo: str | None = None) RepositoryCollaboratorCheck

Check whether a user is a repository member.

Parameters:
  • username – User login to look up.

  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository path. Uses the client default when omitted.

Returns:

Membership payload (typically includes whether the user is a collaborator).

async AsyncGitCode.members.get_permission(*, username: str, owner: str | None = None, repo: str | None = None) RepoMemberPermission

Get repository member permissions.

Parameters:
  • username – Collaborator login.

  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository path. Uses the client default when omitted.

Returns:

Effective permission for the user on the repository.

Account and discovery resources

AsyncGitCode.users

AsyncGitCode.users: AsyncUsersResource

User endpoints exposed as client.users.

async AsyncGitCode.users.get(*, username: str) User

Get a user profile.

Parameters:

username – GitCode username or login.

Returns:

User profile details.

async AsyncGitCode.users.me() User

Get the profile of the authenticated user.

Returns:

Authorized user profile.

async AsyncGitCode.users.list_emails() List[Email]

List email addresses for the authenticated user.

Returns:

Email records associated with the current account.

async AsyncGitCode.users.list_events(*, username: str, year: str | None = None, next: str | None = None) UserEventsResponse

List activity events for a user.

Parameters:
  • username – GitCode username or login (path segment, see User API).

  • year – Optional start year filter (query year, e.g. 2024 per documentation).

  • next – Optional end date / pagination cursor (query next; often an ISO timestamp from a prior page).

Returns:

Event payload grouped by date.

async AsyncGitCode.users.list_repos(*, username: str, **params) List[Repository]

List public repositories owned by a user.

Supported filters follow the user repository API documentation, such as type, sort, direction, page, and per_page.

Parameters:
  • username – GitCode username or login.

  • params – Query parameters accepted by the REST endpoint.

Returns:

Matching repositories.

async AsyncGitCode.users.create_key(*, key: str, title: str) PublicKey

Add a public SSH key for the authenticated user.

Parameters:
  • key – Public key material.

  • title – Human-readable key name.

Returns:

Created key metadata.

async AsyncGitCode.users.list_keys(*, page: int | None = None, per_page: int | None = None) List[APIObject]

List public SSH keys for the authenticated user.

Parameters:
  • page – Page number.

  • per_page – Page size.

Returns:

Public key records.

async AsyncGitCode.users.delete_key(*, key_id: int | str) None

Delete a public SSH key.

Parameters:

key_id – Public key identifier.

async AsyncGitCode.users.get_key(*, key_id: int | str) PublicKey

Get a single public SSH key.

Parameters:

key_id – Public key identifier.

Returns:

Public key metadata.

async AsyncGitCode.users.get_namespace(*, path: str) Namespace

Resolve namespace information for the authenticated user.

Parameters:

path – Namespace path to look up.

Returns:

Namespace details.

async AsyncGitCode.users.list_starred(*, sort: str | None = None, direction: str | None = None, page: int | None = None, per_page: int | None = None) List[Repository]

List repositories starred by the authenticated user.

Parameters:
  • sort – Sort field such as created or updated.

  • direction – Sort direction, usually asc or desc.

  • page – Page number.

  • per_page – Page size.

Returns:

Starred repositories.

AsyncGitCode.orgs

AsyncGitCode.orgs: AsyncOrgsResource

Organization endpoints exposed as client.orgs.

async AsyncGitCode.orgs.list_for_user(*, username: str, page: int | None = None, per_page: int | None = None) List[OrganizationSummary]

List organizations for a user.

Parameters:
  • username – GitCode username or login.

  • page – Page number.

  • per_page – Page size.

Returns:

Organizations the user belongs to.

async AsyncGitCode.orgs.list_authenticated(*, page: int | None = None, per_page: int | None = None, admin: bool | None = None) List[OrganizationSummary]

List organizations for the authenticated user.

Parameters:
  • page – Page number.

  • per_page – Page size.

  • admin – Optional admin-only filter.

Returns:

Organizations visible to the authorized user.

async AsyncGitCode.orgs.get_member(*, org: str, username: str) OrganizationMembership

Get an organization member profile.

Parameters:
  • org – Organization path or login.

  • username – Member username or login.

Returns:

Organization membership details.

async AsyncGitCode.orgs.get(*, org: str) Organization

Get an organization.

Parameters:

org – Organization path or login.

Returns:

Organization details.

async AsyncGitCode.orgs.list_repos(*, org: str, type: str | None = None, page: int | None = None, per_page: int | None = None) List[Repository]

List repositories for an organization.

Parameters:
  • org – Organization path or login.

  • type – Repository type filter such as all, public, or private.

  • page – Page number.

  • per_page – Page size.

Returns:

Matching repositories.

async AsyncGitCode.orgs.create_repo(*, org: str, name: str, **payload) Repository

Create an organization repository.

Additional payload fields match the organization repository creation endpoint, such as description, homepage, private, public, auto_init, and default_branch.

Parameters:
  • org – Organization path or login.

  • name – Repository name.

  • payload – Additional repository creation fields.

Returns:

Created repository metadata.

async AsyncGitCode.orgs.get_enterprise_member(*, enterprise: str, username: str) EnterpriseMember

Get a member profile for an enterprise.

Parameters:
  • enterprise – Enterprise path or login.

  • username – Member username or login.

Returns:

Enterprise membership details.

async AsyncGitCode.orgs.get_membership(*, org: str) OrganizationMembership

Get the authenticated user’s membership in an organization.

Parameters:

org – Organization path or login.

Returns:

Membership details for the current user.

async AsyncGitCode.orgs.list_members(*, org: str, page: int | None = None, per_page: int | None = None, role: str | None = None) List[User]

List members of an organization.

Parameters:
  • org – Organization path or login.

  • page – Page number.

  • per_page – Page size.

  • role – Optional role filter such as all, admin, or member.

Returns:

Organization members.

async AsyncGitCode.orgs.list_enterprise_members(*, enterprise: str, page: int | None = None, per_page: int | None = None, role: str | None = None) List[EnterpriseMember]

List members of an enterprise.

Parameters:
  • enterprise – Enterprise path or login.

  • page – Page number.

  • per_page – Page size.

  • role – Optional role filter.

Returns:

Enterprise members.

async AsyncGitCode.orgs.remove_member(*, org: str, username: str) EmptyResponse

Remove a member from an organization.

Parameters:
  • org – Organization path or login.

  • username – Member username or login.

Returns:

API response payload, if any.

async AsyncGitCode.orgs.list_followers(*, owner: str, page: int | None = None, per_page: int | None = None) List[User]

List followers of an organization.

Parameters:
  • owner – Organization path.

  • page – Page number.

  • per_page – Page size.

Returns:

Followers of the organization.

async AsyncGitCode.orgs.get_issue_extend_settings(*, org: str) List[APIObject]

Get extended issue type and status settings for an organization.

Parameters:

org – Organization path or login.

Returns:

Extended issue configuration entries.

async AsyncGitCode.orgs.invite_member(*, org: str, username: str, permission: str | None = None, role_id: str | None = None) User

Invite a user to an organization.

Parameters:
  • org – Organization path or login.

  • username – Member username or login.

  • permission – Permission level such as pull, push, or admin.

  • role_id – Custom role identifier when using a customized permission.

Returns:

Invited user information with permissions.

async AsyncGitCode.orgs.update_enterprise_member(*, enterprise: str, username: str, role: str) EnterpriseMember

Update the role of an enterprise member.

Parameters:
  • enterprise – Enterprise path or login.

  • username – Member username or login.

  • role – Enterprise role such as viewer, developer, or admin.

Returns:

Updated enterprise membership.

async AsyncGitCode.orgs.update(*, org: str, **payload) Organization

Update organization metadata.

Parameters:
  • org – Organization path or login.

  • payload – Updatable fields such as name, email, or description.

Returns:

Updated organization details.

async AsyncGitCode.orgs.leave(*, org: str) None

Leave an organization as the authenticated user.

Parameters:

org – Organization path or login.

AsyncGitCode.oauth

AsyncGitCode.oauth: AsyncOAuthResource

OAuth helper endpoints exposed as client.oauth.

AsyncGitCode.oauth.build_authorize_url(*, client_id: str, redirect_uri: str, scope: str | None = None, state: str | None = None, response_type: str = 'code') str

Build the GitCode OAuth authorization URL.

Parameters:
  • client_id – OAuth application client ID.

  • redirect_uri – Registered redirect URI.

  • scope – Optional OAuth scopes.

  • state – Optional CSRF protection value.

  • response_type – OAuth response type, defaults to "code".

Returns:

Browser URL for the authorization step.

async AsyncGitCode.oauth.exchange_token(*, code: str, client_id: str, client_secret: str) OAuthToken

Exchange an authorization code for an OAuth token.

Parameters:
  • code – Authorization code returned by GitCode.

  • client_id – OAuth application client ID.

  • client_secret – OAuth application client secret.

Returns:

OAuth access token payload.

async AsyncGitCode.oauth.refresh_token(*, refresh_token: str) OAuthToken

Refresh an OAuth token.

Parameters:

refresh_token – Refresh token previously issued by GitCode.

Returns:

Refreshed OAuth token payload.

Miscellaneous repository resources

AsyncGitCode.releases

AsyncGitCode.releases: AsyncReleasesResource

Release endpoints exposed as client.releases.

async AsyncGitCode.releases.create(*, tag: str, name: str, body: str, owner: str | None = None, repo: str | None = None, target_commitish: str | None = None, release_status: str | None = None) Release

Create a repository release.

Parameters:
  • tag – Tag name for the release.

  • name – Release title.

  • body – Release description.

  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository path. Uses the client default when omitted.

  • target_commitish – Branch name or commit SHA for creating a missing tag.

  • release_status – Release status, such as pre or latest.

Returns:

Created release payload.

async AsyncGitCode.releases.update(*, tag: str, name: str, body: str, owner: str | None = None, repo: str | None = None, release_status: str | None = None) Release

Update a repository release.

Parameters:
  • tag – Tag name in the release URL path.

  • name – Release name.

  • body – Release description.

  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository path. Uses the client default when omitted.

  • release_status – Release status, such as pre or latest.

Returns:

Updated release payload.

async AsyncGitCode.releases.get_upload_url(*, tag: str, file_name: str, owner: str | None = None, repo: str | None = None) ReleaseUploadURL

Get a pre-signed URL for uploading a release attachment.

Parameters:
  • tag – Tag name in the release URL path.

  • file_name – Attachment file name to upload.

  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository path. Uses the client default when omitted.

Returns:

Upload URL and required headers.

async AsyncGitCode.releases.upload(*, tag: str, file_name: str, content: bytes | str, owner: str | None = None, repo: str | None = None, upload_timeout: float | None = 300.0) None

Upload a release attachment through the pre-signed upload URL.

Parameters:
  • tag – Tag name in the release URL path.

  • file_name – Attachment file name to upload.

  • content – Attachment bytes, or a local file path to read as bytes.

  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository path. Uses the client default when omitted.

  • upload_timeout – Timeout for upload operation. Default to 300 (5 minutes).

async AsyncGitCode.releases.get_by_tag(*, tag: str, owner: str | None = None, repo: str | None = None) Release

Get a repository release by tag name.

Parameters:
  • tag – Git tag the release is attached to.

  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository path. Uses the client default when omitted.

Returns:

Release metadata for that tag.

async AsyncGitCode.releases.list(*, owner: str | None = None, repo: str | None = None, direction: str | None = None, page: int | None = None, per_page: int | None = None) List[Release]

List releases for a repository.

Parameters:
  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository path. Uses the client default when omitted.

  • direction – Sort direction, for example asc or desc.

  • page – Page number.

  • per_page – Page size, up to 100.

Returns:

Releases ordered as returned by the API.

async AsyncGitCode.releases.get_latest(*, owner: str | None = None, repo: str | None = None, type: str | None = None) Release

Get the latest repository release.

Parameters:
  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository path. Uses the client default when omitted.

  • type – Selection type, either updated or latest.

Returns:

Latest release metadata.

async AsyncGitCode.releases.get(*, tag: str, owner: str | None = None, repo: str | None = None, temp_download_url: bool | str | None = None) Release

Get a repository release by tag path.

Parameters:
  • tag – Tag name in the release URL path.

  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository path. Uses the client default when omitted.

  • temp_download_url – Whether to return temporary source package and attachment URLs.

Returns:

Release metadata.

async AsyncGitCode.releases.download_attachment(*, tag: str, file_name: str, owner: str | None = None, repo: str | None = None) bytes

Download a release attachment as bytes.

Parameters:
  • tag – Tag name in the release URL path.

  • file_name – Attachment file name.

  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository path. Uses the client default when omitted.

Returns:

Attachment bytes.

AsyncGitCode.tags

AsyncGitCode.tags: AsyncTagsResource

Tag endpoints exposed as client.tags.

async AsyncGitCode.tags.list(*, owner: str | None = None, repo: str | None = None, page: int | None = None, per_page: int | None = None) List[Tag]

List tags for a repository.

Parameters:
  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository path. Uses the client default when omitted.

  • page – Page number.

  • per_page – Page size.

Returns:

Tags.

async AsyncGitCode.tags.create(*, refs: str, tag_name: str, owner: str | None = None, repo: str | None = None, tag_message: str | None = None) Tag

Create a tag for a repository.

Parameters:
  • refs – Object SHA or ref the tag should point to.

  • tag_name – Name of the new tag.

  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository path. Uses the client default when omitted.

  • tag_message – Optional annotated tag message.

Returns:

Created tag.

async AsyncGitCode.tags.list_protected(*, owner: str | None = None, repo: str | None = None, page: int | None = None, per_page: int | None = None) List[ProtectedTag]

List protected tags for a repository.

Parameters:
  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository path. Uses the client default when omitted.

  • page – Page number.

  • per_page – Page size.

Returns:

Protected tag rules.

async AsyncGitCode.tags.delete_protected(*, tag_name: str, owner: str | None = None, repo: str | None = None) None

Delete a protected tag rule.

Parameters:
  • tag_name – Protected tag name in the URL path.

  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository path. Uses the client default when omitted.

async AsyncGitCode.tags.get_protected(*, tag_name: str, owner: str | None = None, repo: str | None = None) ProtectedTag

Get details for a protected tag rule.

Parameters:
  • tag_name – Tag name in the path.

  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository path. Uses the client default when omitted.

Returns:

Protected tag configuration.

async AsyncGitCode.tags.create_protected(*, name: str, owner: str | None = None, repo: str | None = None, create_access_level: int | None = None) ProtectedTag

Create a protected tag rule.

Parameters:
  • name – Tag name or pattern to protect.

  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository path. Uses the client default when omitted.

  • create_access_level – Minimum access level required to create matching tags (API-specific integer).

Returns:

Created rule.

async AsyncGitCode.tags.update_protected(*, name: str, create_access_level: int, owner: str | None = None, repo: str | None = None) ProtectedTag

Update a protected tag rule.

Parameters:
  • name – Tag name or pattern.

  • create_access_level – New create access level.

  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository path. Uses the client default when omitted.

Returns:

Updated rule.

AsyncGitCode.webhooks

AsyncGitCode.webhooks: AsyncWebhooksResource

Webhook endpoints exposed as client.webhooks.

async AsyncGitCode.webhooks.list(*, owner: str | None = None, repo: str | None = None, page: int | None = None, per_page: int | None = None) List[Webhook]

List webhooks for a repository.

Parameters:
  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository path. Uses the client default when omitted.

  • page – Page number.

  • per_page – Page size.

Returns:

Hook configurations.

async AsyncGitCode.webhooks.create(*, url: str, owner: str | None = None, repo: str | None = None, **payload) Webhook

Create a repository webhook.

Parameters:
  • url – Payload URL GitCode should POST events to.

  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository path. Uses the client default when omitted.

  • payload – Additional fields from the Webhooks API (events list, secret, content type, etc.).

Returns:

Created webhook.

async AsyncGitCode.webhooks.get(*, hook_id: int | str, owner: str | None = None, repo: str | None = None) Webhook

Get a repository webhook by identifier.

Parameters:
  • hook_id – Webhook id from the API.

  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository path. Uses the client default when omitted.

Returns:

Webhook configuration.

async AsyncGitCode.webhooks.update(*, hook_id: int | str, url: str, owner: str | None = None, repo: str | None = None, **payload) Webhook

Update a repository webhook.

Parameters:
  • hook_id – Webhook id.

  • url – New payload URL (merged into the JSON body).

  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository path. Uses the client default when omitted.

  • payload – Other mutable webhook fields accepted by the API.

Returns:

Updated webhook.

async AsyncGitCode.webhooks.delete(*, hook_id: int | str, owner: str | None = None, repo: str | None = None) None

Delete a repository webhook.

Parameters:
  • hook_id – Webhook id.

  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository path. Uses the client default when omitted.

async AsyncGitCode.webhooks.test(*, hook_id: int | str, owner: str | None = None, repo: str | None = None) None

Send a test delivery for a repository webhook.

Parameters:
  • hook_id – Webhook id.

  • owner – Repository owner path. Uses the client default when omitted.

  • repo – Repository path. Uses the client default when omitted.