Skip to main content

Basic Youtrack CLI in python

Project description

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/*

Project details


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

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

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.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page