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 hashes)

Uploaded Source

Built Distribution

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

Uploaded Python 3

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