Basic Youtrack CLI in python
Project description
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:
-
set into current repo's git config:
❯ git config youtrack.token "$YOUTRACK_TOKEN" ❯ git config youtrack.url https://your-youtrack-server/api
-
set via environment variables,
YOUTRACK_URL
andYOUTRACK_TOKEN
-
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
Built Distribution
Close
Hashes for youtrack_python_cli-0.2.0.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 64af4e0ed863ffb201d6d73185931a33ae51e281c4f37c52582e9f4245501096 |
|
MD5 | 2c5e96a8a63963f530eb376ae8f8eeb0 |
|
BLAKE2b-256 | 5d0869c11a8d1ab145048e7944453fa1e13e3d8b20c8e8acef977d6d7a3694eb |
Close
Hashes for youtrack_python_cli-0.2.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0c5c46d575d06c819dafd6cca391a3285d367bfb3e73998916054e5f886e8f1e |
|
MD5 | 772a9ef6ce331445d4086c5d5ddf8ed2 |
|
BLAKE2b-256 | 13691657a6f21b0d62f38b1773066174092a6aba5f4ffebadc8de19701b20902 |