log-time-to-tempo


Namelog-time-to-tempo JSON
Version 0.0.4 PyPI version JSON
download
home_pageNone
SummaryLog your work time to tempo from the command line.
upload_time2025-01-14 16:32:56
maintainerNone
docs_urlNone
authorNone
requires_python>=3.8
licenseNone
keywords cli jira tempo
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Log Time to Tempo

[![PyPI - Version](https://img.shields.io/pypi/v/log-time-to-tempo.svg)](https://pypi.org/project/log-time-to-tempo)
[![PyPI - Python Version](https://img.shields.io/pypi/pyversions/log-time-to-tempo.svg)](https://pypi.org/project/log-time-to-tempo)

-----

Log your time to tempo on a self-hosted Jira instance from the convenience of your command line.

## Requirements

This tool is developed against

- Jira Server v9.4.17
- Tempo Timesheets 17.2.0 plugin

Any deviation from that setup might lead to issues.
Feel free to provide PRs to support other configurations.

## Installation

```console
pip install log-time-to-tempo
```

## Getting Started

To initialize authentication and local caches of projects and issues, run

```
lt init
```

If you want to enable shell completion (which makes picking issues much easier), run

```
lt --install-completion
```

## Usage

### Log Time

```sh
# log full workday to default issue
lt log
# log 2h to default issue
lt log 2h
# log 2h to specific issue
lt log 2h TSI-1
# log with custom message
lt log -m "working on foo" 2h TSI-1
```

### Check Logged Time

```sh
# show logged time per issue
lt stats
# show logged time per issue for current month
lt stats month
# ..also show individual worklogs
lt stats -v
```

## Configuration


The `lt config` command allows to change the default behavior, either system wide (`--system`) or in the local directory and subdirectories.

Here are a couple of usage examples:

```sh
# Set custom jira instance for all projects (i.e. system-wide)
lt config --system JIRA_INSTANCE https://jira.my-server.com

# Set default issue for worklogs created from current directory (and subdirectories)
lt config LT_LOG_ISSUE TSI-7

# Start all your worklogs at 10am (instead of the default 9am)
lt config --system LT_LOG_START 10

# Remove all custom configuration
lt config --unset
```

## Changes

### [latest]
[latest]: https://github.com/jannismain/log-time-to-tempo/commits/main/

<!-- ### [0.0.X] - 202X-XX-XX
[0.0.3]: https://github.com/jannismain/log-time-to-tempo/releases/tag/v0.0.X -->

### [0.0.4] - 2025-01-14
[0.0.4]: https://github.com/jannismain/log-time-to-tempo/releases/tag/v0.0.4

- on `lt alias --unset` completion, only existing aliases are suggested
- fix keyring issues
  - keyring provided by `1password-cli` could not be used to persist token → default to system keyring on macOS
  - keyring fails on platforms other than macOS → alternative keyring backends are used.
- fix issue where `lt init` would update cache twice.

### [0.0.3] - 2024-09-12
[0.0.3]: https://github.com/jannismain/log-time-to-tempo/releases/tag/v0.0.3

- add `lt stats` command to aggregate spent time per issue
- add `lt alias` command to provide more meaningful aliases for issue descriptions
  - `lt alias --unset` to remove previously set aliases
- renamed relative date ranges
  - `week` → `last_7_days`
  - `month` → `last_30_days`
  - `week_to_date` → `week`
  - `month_to_date` → `month`
- support abbreviations for relative date ranges (e.g. `l7` for `last_7_days`)
- fix issue where app dir would not be created on first run
- fix issue with formatted durations, where days would not be accounted for
- fix issue where token was saved to third-party keyrings (e.g. 1Password)
- parse more relative dates (e.g. "3 weeks ago") (using [`dateparser.parse`][dateparser.parse])

### [0.0.2] - 2024-04-17
[0.0.2]: https://github.com/jannismain/log-time-to-tempo/releases/tag/v0.0.2

- add `log --lunch` option to reduce the amount of math you have to do in your head when entering your time
  - lunch will simply be deducted from the total duration and your end time
- rename `log --from-time '' --to-time ''` options to `log --start '' --end ''`
- `log --day` is now case-insensitive (so `Mo` will be recognized as `monday`)
- add `--version` flag

### [0.0.1] - 2024-03-25
[0.0.1]: https://github.com/jannismain/log-time-to-tempo/releases/tag/v0.0.1

- authorize with JIRA instance using personal access token
  - prompt for token and persist using [`keyring`][python-keyring] package
- create and list worklogs via tempo's REST API
- list projects and issues using [`jira`][python-jira] API
- cache projects and issues for faster responses and shell completion

[python-jira]: https://github.com/pycontribs/jira
[python-keyring]: https://pypi.org/project/keyring/
[dateparser.parse]: https://dateparser.readthedocs.io/en/latest/#popular-formats

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "log-time-to-tempo",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": null,
    "keywords": "cli, jira, tempo",
    "author": null,
    "author_email": "Jannis Mainczyk <jannis.mainczyk@codecentric.de>",
    "download_url": "https://files.pythonhosted.org/packages/0e/45/31af579b764bd67307ec5979bf203287760b5fea0fc99a06bf46f5824258/log_time_to_tempo-0.0.4.tar.gz",
    "platform": null,
    "description": "# Log Time to Tempo\n\n[![PyPI - Version](https://img.shields.io/pypi/v/log-time-to-tempo.svg)](https://pypi.org/project/log-time-to-tempo)\n[![PyPI - Python Version](https://img.shields.io/pypi/pyversions/log-time-to-tempo.svg)](https://pypi.org/project/log-time-to-tempo)\n\n-----\n\nLog your time to tempo on a self-hosted Jira instance from the convenience of your command line.\n\n## Requirements\n\nThis tool is developed against\n\n- Jira Server v9.4.17\n- Tempo Timesheets 17.2.0 plugin\n\nAny deviation from that setup might lead to issues.\nFeel free to provide PRs to support other configurations.\n\n## Installation\n\n```console\npip install log-time-to-tempo\n```\n\n## Getting Started\n\nTo initialize authentication and local caches of projects and issues, run\n\n```\nlt init\n```\n\nIf you want to enable shell completion (which makes picking issues much easier), run\n\n```\nlt --install-completion\n```\n\n## Usage\n\n### Log Time\n\n```sh\n# log full workday to default issue\nlt log\n# log 2h to default issue\nlt log 2h\n# log 2h to specific issue\nlt log 2h TSI-1\n# log with custom message\nlt log -m \"working on foo\" 2h TSI-1\n```\n\n### Check Logged Time\n\n```sh\n# show logged time per issue\nlt stats\n# show logged time per issue for current month\nlt stats month\n# ..also show individual worklogs\nlt stats -v\n```\n\n## Configuration\n\n\nThe `lt config` command allows to change the default behavior, either system wide (`--system`) or in the local directory and subdirectories.\n\nHere are a couple of usage examples:\n\n```sh\n# Set custom jira instance for all projects (i.e. system-wide)\nlt config --system JIRA_INSTANCE https://jira.my-server.com\n\n# Set default issue for worklogs created from current directory (and subdirectories)\nlt config LT_LOG_ISSUE TSI-7\n\n# Start all your worklogs at 10am (instead of the default 9am)\nlt config --system LT_LOG_START 10\n\n# Remove all custom configuration\nlt config --unset\n```\n\n## Changes\n\n### [latest]\n[latest]: https://github.com/jannismain/log-time-to-tempo/commits/main/\n\n<!-- ### [0.0.X] - 202X-XX-XX\n[0.0.3]: https://github.com/jannismain/log-time-to-tempo/releases/tag/v0.0.X -->\n\n### [0.0.4] - 2025-01-14\n[0.0.4]: https://github.com/jannismain/log-time-to-tempo/releases/tag/v0.0.4\n\n- on `lt alias --unset` completion, only existing aliases are suggested\n- fix keyring issues\n  - keyring provided by `1password-cli` could not be used to persist token \u2192 default to system keyring on macOS\n  - keyring fails on platforms other than macOS \u2192 alternative keyring backends are used.\n- fix issue where `lt init` would update cache twice.\n\n### [0.0.3] - 2024-09-12\n[0.0.3]: https://github.com/jannismain/log-time-to-tempo/releases/tag/v0.0.3\n\n- add `lt stats` command to aggregate spent time per issue\n- add `lt alias` command to provide more meaningful aliases for issue descriptions\n  - `lt alias --unset` to remove previously set aliases\n- renamed relative date ranges\n  - `week` \u2192 `last_7_days`\n  - `month` \u2192 `last_30_days`\n  - `week_to_date` \u2192 `week`\n  - `month_to_date` \u2192 `month`\n- support abbreviations for relative date ranges (e.g. `l7` for `last_7_days`)\n- fix issue where app dir would not be created on first run\n- fix issue with formatted durations, where days would not be accounted for\n- fix issue where token was saved to third-party keyrings (e.g. 1Password)\n- parse more relative dates (e.g. \"3 weeks ago\") (using [`dateparser.parse`][dateparser.parse])\n\n### [0.0.2] - 2024-04-17\n[0.0.2]: https://github.com/jannismain/log-time-to-tempo/releases/tag/v0.0.2\n\n- add `log --lunch` option to reduce the amount of math you have to do in your head when entering your time\n  - lunch will simply be deducted from the total duration and your end time\n- rename `log --from-time '' --to-time ''` options to `log --start '' --end ''`\n- `log --day` is now case-insensitive (so `Mo` will be recognized as `monday`)\n- add `--version` flag\n\n### [0.0.1] - 2024-03-25\n[0.0.1]: https://github.com/jannismain/log-time-to-tempo/releases/tag/v0.0.1\n\n- authorize with JIRA instance using personal access token\n  - prompt for token and persist using [`keyring`][python-keyring] package\n- create and list worklogs via tempo's REST API\n- list projects and issues using [`jira`][python-jira] API\n- cache projects and issues for faster responses and shell completion\n\n[python-jira]: https://github.com/pycontribs/jira\n[python-keyring]: https://pypi.org/project/keyring/\n[dateparser.parse]: https://dateparser.readthedocs.io/en/latest/#popular-formats\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "Log your work time to tempo from the command line.",
    "version": "0.0.4",
    "project_urls": {
        "Documentation": "https://github.com/jannismain/log-time-to-tempo#readme",
        "Issues": "https://github.com/jannismain/log-time-to-tempo/issues",
        "Source": "https://github.com/jannismain/log-time-to-tempo"
    },
    "split_keywords": [
        "cli",
        " jira",
        " tempo"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "9c6ef572c8259b9569daef5f8f2b800407b6acb7b554b26d7755704e381e931a",
                "md5": "73e13573df1405dfd621e93071a757d4",
                "sha256": "e1a85487411f528d8e5762667ce047b5cadb377edc079cb1d5eb5d2e767168ea"
            },
            "downloads": -1,
            "filename": "log_time_to_tempo-0.0.4-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "73e13573df1405dfd621e93071a757d4",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 18340,
            "upload_time": "2025-01-14T16:32:59",
            "upload_time_iso_8601": "2025-01-14T16:32:59.217343Z",
            "url": "https://files.pythonhosted.org/packages/9c/6e/f572c8259b9569daef5f8f2b800407b6acb7b554b26d7755704e381e931a/log_time_to_tempo-0.0.4-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "0e4531af579b764bd67307ec5979bf203287760b5fea0fc99a06bf46f5824258",
                "md5": "16c03d995eb8402bace2b622c0613932",
                "sha256": "058631ac863d6ca481a864cfa752a6426f35422d65751b163e31c7b104fb6a59"
            },
            "downloads": -1,
            "filename": "log_time_to_tempo-0.0.4.tar.gz",
            "has_sig": false,
            "md5_digest": "16c03d995eb8402bace2b622c0613932",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 698194,
            "upload_time": "2025-01-14T16:32:56",
            "upload_time_iso_8601": "2025-01-14T16:32:56.663564Z",
            "url": "https://files.pythonhosted.org/packages/0e/45/31af579b764bd67307ec5979bf203287760b5fea0fc99a06bf46f5824258/log_time_to_tempo-0.0.4.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-01-14 16:32:56",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "jannismain",
    "github_project": "log-time-to-tempo#readme",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "lcname": "log-time-to-tempo"
}
        
Elapsed time: 0.75878s