Skip to main content

GitHub PyPI version PyPI pyversions GitHub Workflow Status codecov

YouTrack Python CLI

Installation

 pip install youtrack-python-cli
# OR, if you use virtualenvs or conda envs in your working repo, use pipx: pipx install youtrack-python-cli

Configuration

The script needs a YouTrack URL to target API requests, and a token for auth.

3 configuration methods:

  1. set into current repo's git config:

     git config youtrack.token "$YOUTRACK_TOKEN" git config youtrack.url https://your-youtrack-server/api
    
  2. set via environment variables, YOUTRACK_URL and YOUTRACK_TOKEN

  3. set via command line parameters, --url and --token

Usage

As git pre-push hook

See the pre-push example, which can be copied directly into .git/hooks/pre-push. That example checks the commit title for the YouTrack ticket ID as the first item, for example EXAMPLE-1234 some commit title.

Running standalone

 youtrack-cli --url "https://your-youtrack-server/api" --token $YOUTRACK_TOKEN get --confirm-prompt --ticket example-1234
                                                  Issue data for example-1234
┏━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃           Key  Value                                                                                                     ┃
┡━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
│    idReadable  EXAMPLE-9377                                                                                              │
├───────────────┼───────────────────────────────────────────────────────────────────────────────────────────────────────────┤
│       summary  Test ticket title                                                                                         │
├───────────────┼───────────────────────────────────────────────────────────────────────────────────────────────────────────┤
│ assignee_name  Jane Doe                                                                                                  │
├───────────────┼───────────────────────────────────────────────────────────────────────────────────────────────────────────┤
│ reporter_name  jane                                                                                                      │
├───────────────┼───────────────────────────────────────────────────────────────────────────────────────────────────────────┤
│   description  Long description, truncated to max of 1024 characters                                                     │
├───────────────┼───────────────────────────────────────────────────────────────────────────────────────────────────────────┤
│           url  https://your-youtrack-server/issue/EXAMPLE-1234                                                           │
└───────────────┴───────────────────────────────────────────────────────────────────────────────────────────────────────────┘
Type the ticket id to confirm: example-1234

Development

Releasing

Manual (TODO this should happen via tag push automatically!). Steps are:

# 1. bump version, eg just the patch: poetry version patch
Bumping version from 0.1.1 to 0.1.2
# 2. store version for remaining commands _VER=$(poetry version --short)
# 3. Save version bump git add . && git commit -m "Bump version to ${_VER}"
# 4. Create annotated tag git tag -a {-m=,}${_VER}
# 5. Push git push && git push --tags
# 6. Build pypi release artifacts rm -rf dist && poetry build
# 7. Publish poetry publish --username=__token__ --password=$(<~/.noahp-pypi-pw)
# 8. Github release stuff gh release create --generate-notes ${_VER} gh release upload ${_VER} dist/*

And all-in-one for copy paste:

poetry version patch \
  && _VER=$(poetry version --short) \
  && git add . \
  && git commit -m "Bump version to ${_VER}" \
  && git tag -a {-m=,}${_VER} \
  && git push && git push --tags \
  && rm -rf dist && poetry build \
  && poetry publish --username=__token__ --password=$(<~/.noahp-pypi-pw) \
  && gh release create --generate-notes ${_VER} \
  && gh release upload ${_VER} dist/*

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

youtrack_python_cli-0.2.0.tar.gz (5.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

youtrack_python_cli-0.2.0-py3-none-any.whl (5.9 kB view details)

Uploaded Python 3

File details

Details for the file youtrack_python_cli-0.2.0.tar.gz.

File metadata

  • Download URL: youtrack_python_cli-0.2.0.tar.gz
  • Upload date:
  • Size: 5.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.7.1 CPython/3.11.6 Linux/6.5.0-14-generic

File hashes

Hashes for youtrack_python_cli-0.2.0.tar.gz
Algorithm Hash digest
SHA256 64af4e0ed863ffb201d6d73185931a33ae51e281c4f37c52582e9f4245501096
MD5 2c5e96a8a63963f530eb376ae8f8eeb0
BLAKE2b-256 5d0869c11a8d1ab145048e7944453fa1e13e3d8b20c8e8acef977d6d7a3694eb

See more details on using hashes here.

File details

Details for the file youtrack_python_cli-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: youtrack_python_cli-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 5.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.7.1 CPython/3.11.6 Linux/6.5.0-14-generic

File hashes

Hashes for youtrack_python_cli-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 0c5c46d575d06c819dafd6cca391a3285d367bfb3e73998916054e5f886e8f1e
MD5 772a9ef6ce331445d4086c5d5ddf8ed2
BLAKE2b-256 13691657a6f21b0d62f38b1773066174092a6aba5f4ffebadc8de19701b20902

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.2.0 This release

2 files

0.1.4

2 files

0.1.3

2 files

0.1.2

2 files

0.1.1

2 files

0.1.0

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page