Releases: Trenza1ore/GitCode-API
1.2.19 - Support GitHub Mirror Repos in Issue / PR Template Fetching
Feature
- Issue and pull request templates (for GitHub mirror repos):
list_templatesmethod now also walk each candidate repository's.github/directory as well, so we can support GitHub-mirrored projects that keepISSUE_TEMPLATE*andPULL_REQUEST_TEMPLATE*files under.github/instead of.gitcode/.
Refactor
- gitcode_api.constants: move
GITCODE_ISSUE_TEMPLATE_PATH_REandGITCODE_PULL_REQUEST_TEMPLATE_PATH_REtogitcode_api.constants, and addGITCODE_TEMPLATE_REPO; path patterns match both.gitcode/and.github/template locations.
Docs
- SDK client API: Template resolution notes describe
.github/support for GitHub-mirrored repositories.
Full Changelog: 1.2.18...1.2.19
1.2.18 - Decrypt API Keys at Request Headers Construction
Feature
- Decrypt at request headers construction: Provided GitCode API token is now decrypted at request headers construction instead of at client constructor due to security concerns, constructor will merely validate it produces a
stras output. - Version metadata (source checkout): Improved logic for resolving
__version__and__build_hash__in local development environment.
Fix
- Typing:
py.typedis now an empty PEP 561 marker as one would expect.
Examples
- examples/sync_github_release_to_gitcode.py: Filters release assets by filename pattern, adds tqdm descriptions and clearer status output for create/skip/upload paths.
Full Changelog: 1.2.17...1.2.18
1.2.17 - Minor Version: Docs & Typing Improvements, Expose Build Hash
Feature
- Version metadata:
__version__is taken from the installed distribution (importlib.metadata), and a new__build_hash__value is exposed for telling builds apart.gitcode-api --versionand the no-argument welcome banner include the build id; the banner also prints Home Page and Docs links (homepage URL comes from package Project-URL metadata when present). - gitcode_api.constants: New documented module with the default API base URL, HTTP timeout, and the
GITCODE_ACCESS_TOKEN/GITCODE_CA_BUNDLEenvironment names used by the client.
Fix
- Packaging: Wheel/sdist installs now ship
py.typedvia setuptoolspackage-data, so type checkers can honor inline typing for the package.
Docs
- SDK reference HTML: After each docs build,
scripts/docs_rename_resource_methods.pyrewrites generated autosummary method labels on the client API page so grouped resource methods read with clearer names; Read the Docs runs this step in its build.
Examples
- examples/sync_github_release_to_gitcode.py: Reworked for clearer flow and alignment with current release upload behavior.
Full Changelog: 1.2.16...1.2.17
1.2.16 - Load Default CA Certificate from Environment Variables
Feature
- Default CA Bundle: When the internal
GitCodeclient builds its ownhttpxclient (you do not passhttp_client=), verification uses the path fromGITCODE_CA_BUNDLEif set, otherwiseREQUESTS_CA_BUNDLEif set (same convention as many Python HTTP stacks), otherwise the default CA bundle is used. Applies to bothGitCodeandAsyncGitCode.
Full Changelog: 1.2.15...1.2.16
1.2.15 - Minor Typing Update
Typing
- openJiuwen adapter (
gitcode_api.llm.jiuwen): Silence mypyimport-untypedon theTYPE_CHECKINGimport ofLocalFunctionfrom optionalopenjiuwen(no runtime or public API change). Now we fully passmypychecks!
Full Changelog: 1.2.14...1.2.15
1.2.14 - Issue & Pull Request Templates, Documentation Improvement
Feature
- Issue and pull request templates:
client.issues/client.pulls(and async counterparts) now exposelist_templatesandget_templatefor GitCode’s.gitcode/issue and PR template files on the default branch, including metadata (RepositoryGitCodeTemplatewith path, SHA, and resolvedtemplate_owner/template_repo). GitCode does not expose this as a dedicated REST “list/get templates” API, so the SDK composes the behavior from repository content calls with custom resolution logic (active template paths, default branch, and upstream template sources). The CLI picks these up automatically asissues list-templates,issues get-template,pulls list-templates, andpulls get-template. as_dict: Top-level helper to turn oneAPIObject(or a list of them) into plaindictvalues viato_dict, with an optionaldeep_copyflag for isolated mappings.Repositorymodel: Responses can include aparentfield describing the upstream source repository when the API returns it.
Refactor
- Models: Dropped unused legacy
TypedDictdefinitions fromgitcode_api._models(no public API change).
Docs
- Homepage and REST API index: added a short “Why this project” section and clarified that the REST mirror is based on GitCode Help material but manually corrected and extended in this repo.
- README and SDK docs updated for template listing/fetching; runnable examples under
examples/for issue and pull request templates.
Full Changelog: 1.2.13...1.2.14
1.2.13 - Support ALL Release Operations in Latest Official REST API Docs
Feature
- Releases (
client.releases/ async parity): Reworked to match the current GitCode API —create, tag-basedupdate,listwithdirection/page/per_page,get/get_by_tag/get_latestwith documented query options,get_upload_urlandupload(input bytes or local file path) for attachments, anddownload_attachmentfor raw bytes. - Models:
Releasenow exposesassetsandrelease_status; upload URL responses useReleaseUploadURL.
Breaking Change
GitCode.releases.update: Targets a release by tag in the URL path (tag=…) instead ofrelease_id; the JSON body isname,body, and optionalrelease_statusonly (notag_namein the payload). Update any code that still passedrelease_idor relied on the old request shape.
Docs
- REST API mirror: release create/upload and related pages, missing release topics, and table cleanup; SDK release documentation updated for the new methods and parameters.
- Added example
examples/sync_github_release_to_gitcode.py.
Full Changelog: 1.2.12...1.2.13
1.2.12 - Improve CLI User Experience & Add Homepage to Project
Feature
- CLI:
-e/--escapetakes a string of\-style escape sequences (for example"\n\t") to un-escape, which makes multiline payloads easier for human users (e.g.gitcode-api pulls create ... --body 'Line1\nLine2' -e '\n'). - CLI: The shared cli argument parser no longer passes
--owner/--repointo theGitCodeclient constructor. Use each method’s own flags so defaults match the SDK method signatures. - CLI (
gitcode-api serve):--show-banner/-bacceptstrueorfalseand forwards to FastMCP’srun(show_banner=…); omit it to keep the library default. - CLI (
gitcode-api serve):--transportis validated againststdio,http, andsse.
Docs
- Added a homepage for this project: https://hugohuang.com/gitcode-api
- README, SDK CLI page (
docs/sdk/cli.rst),install_mcp_server.md, and PyPI homepage links updated for the new CLI and MCP options. - Download stat & PyPI version badges now are mutated automatically per-release to suit GitCode's image-caching strategy for
README.md.
Full Changelog: 1.2.11...1.2.12
1.2.11 - Minor Refactor for User Experience
Feature
gitcode_api.llm:GitCodeLLMToolis eagerly imported and exposed in namespace, easier for custom adapters, MCP wiring, and static analysis.- LLM adapters (OpenAI, openJiuwen):
GitCodeOpenAITool,create_openjiuwen_gitcode_api_tool, and the openJiuwen binding use explicit keyword parameters for GitCode clients (client,async_client,api_key,base_url,timeout,decrypt,owner,repo) instead of a**kwargscatch-all — clearer signatures, better editor hints, and the same ordering asGitCodeLLMTool.
Docs
- README and SDK LLM guide use consistent “unified tool” wording for
gitcode_api_tool. - Changelog section titles point at GitHub release pages; markdown structure cleaned up.
File Layout Improvement
- PyInstaller spec moved to
scripts/gitcode-api.spec;make binaryand the release-binaries workflow call that path (repo root stays simpler). scripts/build_manifest.pyemits a transient.mcpbignorefor MCP bundle packing; tracked top-level.mcpbignorewas removed —make mcpbstill removes generated artifacts afterward.
Full Changelog: 1.2.10...1.2.11
1.2.10 - Improve OpenAI Tool Usage Experience
Feature
-
OpenAI tool (
GitCodeOpenAITool): Invocation results are now JSON strings (str) fromjson.dumpswithensure_ascii=False, so payloads fit Chat Completions tool messagecontentwithout extra serialization.indentcontrols formatting (default2; passNonefor compact single-line JSON). -
OpenAI tool constructor:
async_modedefaults toFalse. Useasync_mode=Trueandawaitthe coroutine returned from the instance — theasynckeyword alias for async mode is no longer accepted onGitCodeOpenAITool.
Docs
- README (English and Chinese), SDK LLM guide, and new runnable example
examples/openai_tool_call.pyupdated for string tool results and a multi-turn Chat Completions loop.
Full Changelog: 1.2.9...1.2.10