Giter Club home page Giter Club logo

minutes's People

Contributors

gabor-boros avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Forkers

othrayte

minutes's Issues

[BUG] Missing tag produces missing title

Describe the bug

Using Clockify and the settings below, both Task and Summary columns' values are missing if no tag is set.

To Reproduce

Steps to reproduce the behavior:

  1. set the specified config
  2. create a new entry in Clockify with a title set, but no task or tags are assigned
  3. run minutes

Expected behavior

The Summary field should have value, regardless of the missing Task.

Screenshots

N/A

System information:

  • OS name: All OS
  • OS version: Any version
  • Version (output of minutes --version): minutes version 0.2.3, commit 31e9656 (2021-11-08T07:00:12Z)

List of flags used:

N/A

Additional context

# Source config
source = "clockify"
source-user = "<hidden>"

clockify-url = "https://api.clockify.me"
clockify-api-key = "<hidden>"
clockify-workspace = "<hidden>"

# Target config
target = "tempo"
target-user = "gabor-boros"

tempo-url = "<hidden>"
tempo-username = "gabor-boros"
tempo-password = "<hidden>"

# General config
tags-as-tasks = true
tags-as-tasks-regex = '[A-Z]{2,7}-\d{1,6}'

round-to-closest-minute = true
force-billed-duration = true

date-format = "2006-01-02"

table-column-config = {
    summary = {
        widthmax = 40
    },
    end = {
        hidden = true
    },
    project = {
        hidden = true
    }
}

[REQUEST] Upload data overrides

Is your feature request related to a problem? Please describe.

When uploading to a target, there is no way to override Client and Project parameters.

Describe the solution you'd like

In many cases, the target will have different Client and Project names compared to the source. For example, in the source (like Tempo) the Client is called "MC" (as per the AccountKey is "MC"), though in the target tool it is called "My Company", hence it will be printed on the invoice. In the case of Project names, the situation is similar.

To eliminate this issue, create an override configuration, that can be configured per target. Why not source? Because sources have nothing to do with upload overrides.

Describe alternatives you've considered

N/A

Additional context

N/A

[BUG] Do not upload entries parallelly for the same task

Describe the bug

Some tools (like Tempo / older version of Tempo) may get confused when multiple entries are uploaded for the same task. The reason, in the case of Tempo, is that tries to calculate the remaining estimate for the task automatically, hence the calculation can go wrong and the remaining estimate will be set to a higher number than it should be.

Example:

Task TSK-123 has 3 entries with 1, 2, and 3 hours logged on them. When the entries are uploaded by the corresponding goroutines, Tempo will try to calculate the remaining time for TSK-123 at upload. If the calculation is done simultaneously for 2 out of the 3 entries, the remaining estimate on TSK-123 will not match the reality.

To Reproduce

  1. Upload ~3-5 entries for the same task at "once"
  2. Check the remaining estimates in Tempo

Expected behavior

Entries for the same task are uploaded after each other, therefore not causing any race conditions on the server-side. A possible solution could be using linked lists for tasks and during upload, one goroutine would be responsible for one chain.

Screenshots

N/A

System information:

  • OS name: ALL
  • OS version: ALL
  • Version (output of minutes --version): master

List of flags used:

Not relevant

Additional context

N/A

[REQUEST] Support filtering for sources

Is your feature request related to a problem? Please describe.

At the moment, filtering for workspaces, projects, and clients is not supported, though it would require low effort to support.

Describe the solution you'd like

When fetching entries from source, allow users to filter for a given users, project, and/or client.

Describe alternatives you've considered

N/A

Additional context

This will probably introduce some assumptions for some sources such as for Tempo.

[REQUEST] Refactor sources and targets as plugins

Is your feature request related to a problem? Please describe.

Adding (and maintaining) more sources and targets would be harder over time and "pollutes" the core logic in some way.

Describe the solution you'd like

To have a more flexible and well separated structure, extract the sources and targets into plugins. This way the core logic would be somewhat simpler and sources/targets would be self-contained.

Describe alternatives you've considered

Additional context

[REQUEST] Let minutes log time

Is your feature request related to a problem? Please describe.

minutes is capable of syncing time between tools, but it cannot act as a source.

Describe the solution you'd like

Implement basic time tracking features and add minutes as a source plugin.

Describe alternatives you've considered

Additional context

[REQUEST] Implement Zoho Books as a target

Is your feature request related to a problem? Please describe.

Zoho Books support would be needed for v0.1.0, but it is not supported yet.

Describe the solution you'd like

Implement Zoho Books as a sync target based on their documentation.

Describe alternatives you've considered

N/A

Additional context

[REQUEST] Usage telemetry

Is your feature request related to a problem? Please describe.

It is not visible how many users using what version of the app.

Describe the solution you'd like

Implement sending telemetry reports when the app starts. The telemetry should be optional and turned on by default. Also, the first start should warn the user about how to turn it off.

Describe alternatives you've considered

N/A

Additional context

N/A

[REQUEST] Implement Toggl Track as as source

Is your feature request related to a problem? Please describe.

Toggl Track support would be needed for v0.1.0, but it is not supported yet.

Describe the solution you'd like

Add Toggl Track support (using their updated API domains) as a source. Also, Toggl Track's paid plans support Tasks, so that should be considered too.

Describe alternatives you've considered

N/A

Additional context

[REQUEST] Upload completion message

Is your feature request related to a problem? Please describe.

The upload completion is indicated by an exit code 0, but nothing else.

Describe the solution you'd like

Add at least a message after the upload is completed to indicate successful upload.

Describe alternatives you've considered

N/A

Additional context

N/A

[REQUEST] Parse tags from summary

Is your feature request related to a problem? Please describe.

There are some sources that have no support for tags. In the case of these sources, like Harvest, the tags-as-tasks flag is not considered.

Describe the solution you'd like

Create a new flag and config option to parse tags from the Summary field of entries. Therefore, combining tags-as-tasks and the new flag would provide a similar user experience compared to sources that are supporting tags natively.

The new flag should have a pair as well, which would stand for the regex used for parsing.

An example call:

minutes \
    --tags-in-summary \
    --tags-in-summary-regex '\[(\w+|\s+)+\]' \
    --tags-as-tasks \
    --tags-as-tasks-regex '[A-Z]{2,7}-\d{1,6}'

Describe alternatives you've considered

As an alternative tags-in-summary could replace tags-as-tasks. During the implementation it should be evaluated.

Additional context

N/A

[REQUEST] Update notifier

Is your feature request related to a problem? Please describe.

The fact of a new release is not shown when the app starts, hence it is harder to be informed about newer versions.

Describe the solution you'd like

Have a built-in mechanism for checking for newer versions at command start. The check should be optional and turned on by default.

Describe alternatives you've considered

N/A

Additional context

N/A

[BUG] If no config file set an error raised

Describe the bug

When no config file present, an error raised that the config file cannot be located.
Setting the exact config file results in Error: Config File "/tmp/minutes.toml" Not Found in "[]"

To Reproduce

Steps to reproduce the behavior:

  1. remove the existing .minutes.toml config file
  2. run minutes --version

Expected behavior

Minutes should work without a config file and with specific config locations.

Screenshots

N/A

System information:

  • OS name: ALL
  • OS version: ALL
  • Version (output of minutes --version): minutes version 0.2.1, commit d343fe3 (2021-11-04T08:43:07)

List of flags used:

N/A

Additional context

N/A

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.