# Yandex Tracker Client (or Yet Another Tracker Client)
Async Yandex Tracker Client based on aiohttp and pydantic
[](https://www.python.org/)
[](https://github.com/charliermarsh/ruff)
[](https://github.com/danfimov/ya_tracker_client/actions/workflows/code-check.yml)
---
You can read [API documentation](https://cloud.yandex.com/en/docs/tracker/about-api) for more information or [API specification](assets/api_specification.yaml) in OpenAPI format.
## Installation
With pip:
```shell
pip install ya_tracker_client
```
With poetry:
```shell
poetry add ya_tracker_client
```
With uv:
```shell
uv add ya_tracker_client
```
## Usage
```python
import os
from asyncio import run
from dotenv import load_dotenv
from ya_tracker_client import YaTrackerClient
load_dotenv()
# from registered application at Yandex OAuth - https://oauth.yandex.ru/
API_TOKEN = os.getenv("API_TOKEN")
# from admin panel at Yandex Tracker - https://tracker.yandex.ru/admin/orgs
API_ORGANISATION_ID = os.getenv("API_ORGANISATION_ID")
async def main() -> None:
# init client
client = YaTrackerClient(
organisation_id=API_ORGANISATION_ID,
oauth_token=API_TOKEN,
)
# create issue
new_issue = await client.create_issue('New issue', 'TRACKER-QUEUE')
# get issue
issue = await client.get_issue('KEY-1')
# update issue (just pass kwargs)
issue = await client.edit_issue('KEY-1', description='Hello World')
# don't forget to close tracker on app shutdown
await client.stop()
if __name__ == "__main__":
run(main())
```
## Explanations about naming
- All `self` properties renamed to `url` cause it's incompatible with Python;
- All `camelCase` properties renamed to `pythonic_case`;
- All datetime values converted to python's `datetime.datetime` objects;
- Methods named by author, cause Yandex API has no clear method names.
## Current library capabilities
- Working with queues
- Getting information about issues, priorities and transitions
- Working with issue relationships
- Getting user information
More info about work status here: https://github.com/danfimov/ya_tracker_client/milestone/1
Raw data
{
"_id": null,
"home_page": null,
"name": "ya_tracker_client",
"maintainer": null,
"docs_url": null,
"requires_python": "<=3.14,>=3.10",
"maintainer_email": null,
"keywords": "Yandex, Tracker, API, async",
"author": null,
"author_email": "\u0414\u043c\u0438\u0442\u0440\u0438\u0439 \u0410\u043d\u0444\u0438\u043c\u043e\u0432 <work@danfimov.ru>",
"download_url": "https://files.pythonhosted.org/packages/75/0c/9f474a957bca4f275a2c488edad092e7bc237295d984cdd7e4de2070eed7/ya_tracker_client-0.1.0.tar.gz",
"platform": null,
"description": "# Yandex Tracker Client (or Yet Another Tracker Client)\n\nAsync Yandex Tracker Client based on aiohttp and pydantic\n\n[](https://www.python.org/)\n[](https://github.com/charliermarsh/ruff)\n[](https://github.com/danfimov/ya_tracker_client/actions/workflows/code-check.yml)\n\n---\n\nYou can read [API documentation](https://cloud.yandex.com/en/docs/tracker/about-api) for more information or [API specification](assets/api_specification.yaml) in OpenAPI format.\n\n## Installation\n\nWith pip:\n```shell\npip install ya_tracker_client\n```\n\nWith poetry:\n```shell\npoetry add ya_tracker_client\n```\n\nWith uv:\n```shell\nuv add ya_tracker_client\n```\n\n\n## Usage\n\n```python\nimport os\nfrom asyncio import run\n\nfrom dotenv import load_dotenv\n\nfrom ya_tracker_client import YaTrackerClient\n\n\nload_dotenv()\n# from registered application at Yandex OAuth - https://oauth.yandex.ru/\nAPI_TOKEN = os.getenv(\"API_TOKEN\")\n# from admin panel at Yandex Tracker - https://tracker.yandex.ru/admin/orgs\nAPI_ORGANISATION_ID = os.getenv(\"API_ORGANISATION_ID\")\n\n\nasync def main() -> None:\n # init client\n client = YaTrackerClient(\n organisation_id=API_ORGANISATION_ID,\n oauth_token=API_TOKEN,\n )\n\n # create issue\n new_issue = await client.create_issue('New issue', 'TRACKER-QUEUE')\n\n # get issue\n issue = await client.get_issue('KEY-1')\n\n # update issue (just pass kwargs)\n issue = await client.edit_issue('KEY-1', description='Hello World')\n\n # don't forget to close tracker on app shutdown\n await client.stop()\n\n\nif __name__ == \"__main__\":\n run(main())\n```\n\n\n## Explanations about naming\n\n- All `self` properties renamed to `url` cause it's incompatible with Python;\n- All `camelCase` properties renamed to `pythonic_case`;\n- All datetime values converted to python's `datetime.datetime` objects;\n- Methods named by author, cause Yandex API has no clear method names.\n\n## Current library capabilities\n\n- Working with queues\n- Getting information about issues, priorities and transitions\n- Working with issue relationships\n- Getting user information\n\nMore info about work status here: https://github.com/danfimov/ya_tracker_client/milestone/1\n",
"bugtrack_url": null,
"license": "MIT License",
"summary": "Async Yandex Tracker Client",
"version": "0.1.0",
"project_urls": {
"Bug Tracker": "https://github.com/danfimov/ya_tracker_client/issues",
"Repository": "https://github.com/danfimov/ya_tracker_client/"
},
"split_keywords": [
"yandex",
" tracker",
" api",
" async"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "39a9934fa317d5fd89835bc609b97a040eb58806e2044a5782aa4c3646155531",
"md5": "c8d5e570d904e8041572a7896b1f4b33",
"sha256": "f601c3e101a3bb3766222b9e8fc220ab1c6784bcc2ce22ed636ddb048d96babb"
},
"downloads": -1,
"filename": "ya_tracker_client-0.1.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "c8d5e570d904e8041572a7896b1f4b33",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": "<=3.14,>=3.10",
"size": 42507,
"upload_time": "2025-04-09T10:50:47",
"upload_time_iso_8601": "2025-04-09T10:50:47.835308Z",
"url": "https://files.pythonhosted.org/packages/39/a9/934fa317d5fd89835bc609b97a040eb58806e2044a5782aa4c3646155531/ya_tracker_client-0.1.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "750c9f474a957bca4f275a2c488edad092e7bc237295d984cdd7e4de2070eed7",
"md5": "b7b0642407beba75a1c18c68c31b79ca",
"sha256": "28c8f413c252aa9217a7a7aaf529b94af83658a110c5266c18da1d5bff5c4f5c"
},
"downloads": -1,
"filename": "ya_tracker_client-0.1.0.tar.gz",
"has_sig": false,
"md5_digest": "b7b0642407beba75a1c18c68c31b79ca",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "<=3.14,>=3.10",
"size": 22591,
"upload_time": "2025-04-09T10:50:49",
"upload_time_iso_8601": "2025-04-09T10:50:49.153980Z",
"url": "https://files.pythonhosted.org/packages/75/0c/9f474a957bca4f275a2c488edad092e7bc237295d984cdd7e4de2070eed7/ya_tracker_client-0.1.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-04-09 10:50:49",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "danfimov",
"github_project": "ya_tracker_client",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "ya_tracker_client"
}