ya_tracker_client


Nameya_tracker_client JSON
Version 0.1.0 PyPI version JSON
download
home_pageNone
SummaryAsync Yandex Tracker Client
upload_time2025-04-09 10:50:49
maintainerNone
docs_urlNone
authorNone
requires_python<=3.14,>=3.10
licenseMIT License
keywords yandex tracker api async
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Yandex Tracker Client (or Yet Another Tracker Client)

Async Yandex Tracker Client based on aiohttp and pydantic

[![Python](https://img.shields.io/badge/python-3.10_|_3.11_|_3.12_|_3.13-blue)](https://www.python.org/)
[![Code linter: ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/charliermarsh/ruff/main/assets/badge/v1.json)](https://github.com/charliermarsh/ruff)
[![Linters](https://github.com/danfimov/ya_tracker_client/actions/workflows/code-check.yml/badge.svg)](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[![Python](https://img.shields.io/badge/python-3.10_|_3.11_|_3.12_|_3.13-blue)](https://www.python.org/)\n[![Code linter: ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/charliermarsh/ruff/main/assets/badge/v1.json)](https://github.com/charliermarsh/ruff)\n[![Linters](https://github.com/danfimov/ya_tracker_client/actions/workflows/code-check.yml/badge.svg)](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"
}
        
Elapsed time: 1.53627s