node package manager
Love JavaScript? Your insights can make it even better. Take the 2017 JavaScript Ecosystem Survey ยป

auto-timesheet

auto-timesheet

Add redmine timesheet automatically and periodically.

Gitter chat

๐ŸŽˆ Auto-timesheet 2 has released - with Gitlab support! ๐Ÿ˜œ

โš ๏ธ Important: This package is pre-configured for Cubet Technolabs Policies. If you need to configure this app for your workstation, please rise an issue and I'll reach you back.

Created and maintained at free times for fun.

Why?

  • Because I keep forgetting to add stuffs to timesheet. ๐Ÿ˜ค
  • Adds activities to timesheet automatically and periodically.
  • Integrated with your Git repo. So activity messages are constructed from your commit messages.
  • Supports Github and Gitlab.

Install

npm i -g auto-timesheet

verify with auto-timesheet --version.

Configure

auto-timesheet conf

It opens up a config file. Alter it and save. Make sure you didn't made any syntax mistakes with the opened json file.

By default it will open the editor mentioned in the $EDITOR env_var. If none, be prepared for vi.

some important conf file properties

General configurations

  • projectId : The timesheet project id in which you are working on. You should find this by inspecting the web interface of timesheet. If you need any assistance, feel free to open an issue.
  • activityInterval : Interval in milliseconds.
  • defaultIssue : If auto-timesheet couldn't extract any issues from your commit messages, this issue will be used.
  • git-service: selected git service. Possible options: github and gitlab. Based on this value, corresponding git configuration is used.

Github specific

  • config.github.url: Github api url to fetch commits of your repo.
  • config.github.commitAuthorEmail : email of the committer. commit messages are extracted based on this email.
  • config.github.username: Github username.

Gitlab specific

  • config.gitlab.url: Gitlab api url to fetch commits of your repo. here is an example template:
http://<host(eg:192.168.1.55)>/api/v4/projects/<project_id(eg: 80. look this at the settings page of your repo OR ask repo owner)>/repository/commits?ref_name=<branch_name>

eg: http://192.168.1.55/api/v4/projects/80/repository/commits?ref_name=master

  • config.gitlab.commitAuthorEmail : email of the committer. commit messages are extracted based on this email.

Advanced configs

  • issueMatchingInsensitivity [Recommended 4] : For best results, this should be an integer in between 0 and 10. Lesser the value, it is more likely that the package will create new issues. Higher the value, the package will try to match the extracted issue with existing issues and if both are matching (the degree of matching is based on the issueMatchingInsensitivity value), the existing issue will be reused. In other words, accuracy of the matchness is based on this value. Lesser the value means more accurate and higher the value means less accurate.

Usage

modify your future commit messages:

use star-tags (*thisIsStarTag) to mention the timesheet-issue/issues you are addressing with this commit. An example commit message be like:

Improves *login security and updates *documentation 

Here login and documentation are timesheet issues. The package will choose one randomly and create/use that issue for this commit message.

start application

auto-timesheet start

Handy commands

run the following to see all available commands.

auto-timesheet help

will give you:

Usage: auto-timesheet [options] [command]


  Options:

    -V, --version  output the version number
    -h, --help     output usage information


  Commands:

    conf        configure stuff
    start       start application
    reset       reset this package [config will be deleted]
    migrate     migrate configuration file version to compatible version
                without loosing current configurations
    help [cmd]  display help for [cmd]

Found any issues/ need help?

Please report it at github issues

Licence

MIT ยฉ Vajahath Ahmed