| title | Changelog |
|---|---|
| chapter | true |
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
v0.26.1 - 2021-12-07
- hide "interrupted" error from the output
- removed
printlnin the code breaking the component. - prevent error when no time has been chosen as output for
AskForDateTime
v0.26.0 - 2021-11-02
- add description suggestion using the recent time entries.
- some code and style fixes detected by deepsource
- refactored date-time flags into its own function.
- refactored ask for date-time helper function to not have control flags.
v0.25.0 - 2021-10-08
reportsubcommands were showing only the time not the date when the time entry was created.--quiethelp was wrong, it said "print as json", but it prints only the id.
- project color is used to "render" project name on the terminal, if the output is being piped or redirected then colors will be ignored to prevent problems and miss-interpretation of the output.
showsubcommand prints details about time entries without having to list of the time entries of a given date.edit,edit-multiple,show,clonesupport "^n" expression to select a time entry to act on, "^0" is the same as "current", "^1" is the same as "last", "^2" chooses the time entry before the last one, etc.- new
md(markdown) format to print time entries
v0.24.1 - 2021-09-20
outsubcommand was not setting the user to look on ending the time entry.- listing subcommands didn't show "hydrated" information about time entries,
GetUsersHydratedTimeEntrieswas not telling the api to return hydrated data.
- all client method calls now validated for required fields, this makes easier to see bugs and prevent errors to creping up into releases.
v0.24.0 - 2021-09-18
- new commands
mask-invoicedandmark-not-invoicedcreated to allow users to set this information using the cli.
- creation/update/out of time entries is made using the current api, instead of the old one
- listing of workspaces and users is made using the current api, instead of the old one
- all specific calls for the api for listing time entries were refactored to use a main function to request then, the client methods still exist and maintain the same inputs/outputs, but are calling the same function instead of reimplementing the call every time
- getting of a project now uses the current api
- debug messages of requests now show a "name" on it to help identify what where the intention of the call
- client method for recent time entries was not listed as a valid api, so its is now removed.
v0.23.1 - 2021-09-17
lastandcurrentaliases were failing to find and select the right time entry, it is a problem with the old api for getting "recent time entries", fixed by @zerodahero
v0.23.0 - 2021-09-16
- client uses current api to retrieve all tasks of a project
- interactive mode support to select tasks
- name or id support for tasks
- terminal auto-complete support for
taskflag - new config
show-taskthat sets the reports/output of time entries to show its task, if exists
- package
golang.org/x/crypto/ssh/terminalwas deprecated, substituted bygolang.org/x/term
- output formatters for
dto.TimeEntryImplwere not being used.
v0.22.0 - 2021-09-05
- use new go version (1.17)
- custom
changedfunction is the same as usingFlags.Changed, changed to use just the later - use
hydratedparameter on "get time entry" endpoint instead of getting details individually - change in progress time entry using the current api
- using "Hydrated" instead of "Full" to be consistent will the api
- remove default message for 404 errors from the api
edit-multiplewithout interactive mode were not working with theallow-name-for-idflag.
v0.21.0 - 2021-08-16
- deploy to Netlify was not being triggered after release build, making the html documentation always wrong.
- using terminal size of stdout file descriptor, this may fix problems on windows to print reports.
- special characters will be ignored when looking for a project or tag with similar name.
--interactiveflag now describes how to disable it (suggestion from #115)- example to create a time entry using only flags no README.
- keep the same options to print/output on all commands that show time entries.
- support for names for id for tags
- improved output examples to better resemble real output.
- updated go dependencies
reportspackage renamed tointernal/output, to prevent usage from other packages and solve ambiguity withreportcommand andreport api(to come)- flag
allow-project-namenow will be calledallow-name-for-idto account for other entities that would benefit from using their names instead of their ids
- features about integration with github:issues, azure dev and trello will not be implemented, at least not in a foreseeable future.
v0.20.0 - 2021-08-10
manualandincommands now support the use of--project,--description,--whenand--when-to-closeflags besides existing positional arguments (now optional even without interactive mode).
- shorthand names for flags
when,when-to-close,description,projectandtag
v0.19.5 - 2021-08-03
- select UI component can fail to return a valid option if the default value were not in the list, to prevent that if the default value is empty or not in the list, no default value will be set.
v0.19.4 - 2021-07-21
editcommand were resetting the start time to "now" if the user didn't set the--whenflag.whenandwhen-to-closeflags onedithelp had the wrong description.
v0.19.3 - 2021-07-20
cloneshould create a open time entry by default.
deletecommand accepts multiple ids instead of just one.
v0.19.2 - 2021-07-20
inandclonecommands were starting at 0001-01-01 because the default value of the flag was not being read.
v0.19.1 - 2021-07-19
READMEnow contains updated help output.edit-multiplehelp should be capitalized.
v0.19.0 - 2021-07-19
- subcommand
edit-multipleallows the user to edit all properties (except for the time interval) of multiple time entries simultaneously. when not in interactive mode the user can choose exactly which properties to change and to keep.
- flags used for creation and edition of time entries are now centralized into three functions
addFlagsForTimeEntryCreationto add flags used to create time entries,addFlagsForTimeEntryEditfor flags used on edition, andfillTimeEntryWithFlagsto replicated the flag values into the time entry.
- flag
end-aton edit subcommand will be removed in favor ofwhen-to-closeto be consistent with other subcommands. - flag
tagson many subcommands will be removed in favor oftagto imply that its one by flag.
v0.18.1 - 2021-07-12
- when the input for start time is cancelled (ctrl+c), clockify-cli was blocking the user by looping on the field until a valid date-time string was used, or the process were killed.
- library
github.com/AlecAivazis/surveyupdated to the latest version. READMEupdated to show new configurations.
v0.18.0 - 2021-07-08
- commands
in,cloneandmanualwill show a new "None" option on the projects list on the interactive mode if the workspace allows time entries without projects. - config
allow-incompleteallows the user to set if they want to create "incomplete time entries" or to validated then before creation. Flag--allow-incompleteand environment variableCLOCKIFY_ALLOW_INCOMPLETEcan be used for the same purpose. by default time entries will be validated.
- commands
inandclonewhen creating an "open" time entry will not validate if the workspace requires a project or not, allowing the creation of open incomplete/invalid time entries, similar to the browser application. newEntryfunction changed tomanageEntryand will allow a callback to deal with the filled and validated time entry instead of always creating a new one, that way same code that were duplicated between it and theeditcommand can be united.
no-closingconfiguration was removed, because was not used anymore.
v0.17.2 - 2021-06-17
- goreleaser needs a GitHub token with more permissions to create the homebrew Formulae.
v0.17.1 - 2021-06-16
- changing travis ci for gihub actions, seens easier to use and one less login to handle
v0.17.0 - 2021-06-16
- command
report last-day, this command will list time entries from the last day the user worked. - command
report last-week-day, this command will look for the last day were the user should have worked (based on the new configworkweek-days) and list the time entries for that day. - config
workweek-daysfor the user to set which days of the week they work. it can be set interactively.
v0.16.1 - 2021-06-16
- interactive selection of project would panic if the list were empty (filtering can empty the list) and pressing enter. now will return as "no project selected".
workspacescommand is now namedworkspace,workspacesstill supportedworkspacedefault print format now shows the workspace marked as "default"
v0.16.0 - 2021-05-14
project listcan print the projects as JSON and CSV.project listcommand default print format shows the client name and id
v0.15.1 - 2020-09-30
- if the workspace has more the one page of projects, in interactive mode, only the first page was being shown. now fixed to run over all pages to fill the list.
- "Getting Started" section on README.md to help new users to setup theirs environment.
v0.15.0 - 2020-09-12
- support for command line completion on
fish,bashandzshfor subcommands and flag name's - command line completion for arguments and flags for Tags, Projects, Workspaces and Users.
- alias
removeto commanddelete
- using the API
v1version to get tags available to a workspace. api.Client.Workspacesrenamed toapi.Client.GetWorkspacesto follow pattern used on other functions.- command
config,config setandconfig initcombined to be only one commandconfig - improvements on help of many commands to show usable values.
github.com/spf13/cobraupdated to latest possible current version to use completion improvements not yet released- "interactive mode" functions moved to a separate package.
v0.14.1 - 2020-09-09
- the project select on interactive mode was not respecting the "default" project when cloning or informed through flags/parameters
v0.14.0 - 2020-09-08
- ask for "interactive mode" and "auto-closing" global configurations on
config initcommand.
v0.13.0 - 2020-09-08
- select and multi-select interactive now support "glob like" expressions to filter a option
- client name of a project is shown on interactive mode to help identify the project.
- select and multi-select options now support "non-english" characters like "á" by converting then to a ASCII equivalent character.
- flag
--tokenhelp was not showing the right env var name.
v0.12.1 - 2020-08-22
- "How to install" section on README to help new users to understand which options are available.
- improving the "homebrew tap" to allow installation using:
brew install lucassabreu/tap/clockify-cli
v0.12.0 - 2020-08-31
- support to homebrew for macOs users.
v0.11.0 - 2020-08-22
- new
deletecommand to remove a existing time entry from a workspace. editcommand support to interactive mode.
- when cloning a time entry, using interactive mode, the tags selected were not being respected.
editcommand was removing all data from time-entry if the flag to fill the field was not being set.
v0.10.1 - 2020-08-10
inandmanualcommand were showing a error "Project '' informed was not found", even when no project id/name is informed, this is now fixed.
v0.10.0 - 2020-08-07
clonecommand now allow to change the project and description on the time entry creation, interactive mode already had this possibility- new flag
archivedonproject listto list archived projects - a new global config
allow-project-namethat, when enabled, allow the user to the project name (or parts of it) to be used where the project id is asked. - common function to get all pages on a paginated request, to not reimplement it, and guarantee all entities are being used/returned.
clonesub-command was not asking to confirm the tags when the original time entry already had some.clonecommand now will respect flags--tagsand--when-to-close.- "billable" attribute was not being cloned
- keep the current CHANGELOG when extracting the last tag
- some grammatic errors ("applyied" => applied)
- remove mentions to GitHub or Trello token, until integration is implemented
v0.9.0 - 2020-07-20
- new sub-command
versionto allow a quick way to know which version is installed - sub-command
reportnow supportsthis-weekandlast-weekas time range aliases listing respectively all entries which start this week, and all entries that happened on previous week.
- all relevant errors now have stack trace with then, which will be printed when the
flag
--debugis used. - error reporting now centralized, removing the need for a helper function in each sub-command
reportcommand default output (table) with show in which day the times entries were made.
v0.8.1 - 2020-07-09
clonesub-command was not working because theno-closingviper config was being connected with a non-existing--no-closingflag in theinsub-command, that does not exist anymore.
v0.8.0 - 2020-07-08
- created a new sub-command
manualthat will allow to create "completed" time entries in a more easy way. - created a new flag
--when-to-closeoninandcloneto set close time for the time entry being started (if wanted).
clonesub-command allows the flag--no-closingand will have the same flags asinto set start and end time (if wanted)insub-command will always stops time entries that are open in the moment of the sub-command call.- some helps and messages were improved to better describe what the command does
- flags
--trello-tokenand--github-tokenwere removed because they are not currently used and may give false impressions about the cli
- some code for the in and clone sub-commands were duplicated, now they are in
newEntryfunction that they both used.
v0.7.2 - 2020-06-21
- using JSON to notify Netlify, to prevent "malformed url errors"
v0.7.1 - 2020-06-21
- snapcraft build/release problems after Travis config update
v0.7.0 - 2020-06-21
- build every pull request as a snapshot to check if it is not failing
- command to auto-generated hugo formatted markdown files from the commands
- implemented a site to better help people to understand what the CLI does, without having to download it (live on: https://clockify-cli.netlify.app/)
- improved headers on the CHANGELOG to better represent the hierarchies
- moved
in cloneto be justclone
- missing release links for the title on the CHANGELOG
- filling the brackets on the LICENSE file
v0.6.1 - 2020-06-16
configcommand can print the "global" parameters injsonoryamlconfignow accepts a argument, which is the name of the parameter, when informed only this parameter will be printed
v0.6.0 - 2020-06-16
- some badges, who does not like they?
- help was showing
CLOCKIFY_WROKSPACEas env var for workspace, the right name isCLOCKIFY_WORKSPACE - fixed some
golintwarnings
- go mod dependencies updated
snapcraftpackage only requires network
- Removed
GetCurrentUserin favor ofGetMeto be closer to the APIs format
v0.5.0 - 2020-06-15
in,logandreportnow don't require you to inform a "user-id", if none is set, than will get the user id from the token used to access the api
mecommand returns information about the user who owns the token used to access the clockify's api
v0.4.0 - 2020-06-01
- table format will show time entry tags
- when adding fake entries with
--fill-missing-dates, will set end time as equal to start time, so the duration will be 0 seconds
v0.3.2 - 2020-05-22
- printing duration as "h:mm:ss" instead of the Go's default format, because is more user and sheet applications friendly.
v0.3.1 - 2020-04-01
- fixed
--no-closingbeing ignored - interactive flow of
clonewas keeping previous time interval
v0.3.0 - 2020-04-01
- minor grammar bug fixes
- improvements to the code moving interactive logic of the "in" command into
cmd/common.go - "in clone" is now interactive and will ask the user to confirm the time entry data before creating it.
v0.2.2 - 2020-03-18
- the endpoint
workspaces/<workspace-id>/tags/<tag-id>does not exist anymore, instead theapi.Clientwill get all tags of the workspace (api.Client.GetTags) and filter the response to find the tag by its id.
v0.2.1 - 2020-03-02
clockify-cli reportparameter--fill-missing-dates, was not working
v0.2.0 - 2020-03-02
clockify-cli report --fill-missing-dateswhen this parameters is set, if there are dates from the range informed, will be created "stub" entries to better show that are missing entries.
v0.1.7 - 2020-02-03
api.Clientnow supports getting one specific time entry from a workspace, without the need to paginate through all time entries to find it (GetTimeEntryfunction).
clockify-cli reportwas not getting all pages from the period, implemented support for pagination and to get "all pages" at once intoClient.LogandClient.LogRange
- updated README, so it shows the
--helpoutput as it is now
v0.1.6 - 2020-02-03
- fixed bug after Clockify's API changed, where
userandprojectare not automatically provided by the "time-entries" endpoint, unless sending an extra parameterhydrated=true, anduseris not provided anymore, so now we find it using the user id from the function filter
v0.1.5 - 2020-01-08
- fixed bug on the
logcommands, where the previews api url is not available anymore, now usingv1/workspace/{workspace}/user/{user}/times-entries - spelling of some words fixed and improving some aspects of the code
go.modupdated
- seamless support for query parameters using the interface
QueryAppender - support for retrieving the current user of the token (
v1/user) in the API client. .nvimrcadded to provide spell check
v0.1.4 - 2019-08-05
- Permissions to
snapinstallation, so configuration file can be used
v0.1.3 - 2019-08-02
- Set
publishtotrueso it will be sent tosnapcraft
v0.1.2 - 2019-08-02
- Add release to snapcraft by the name
clockify-cli - Add command
clockify-cli reportimplemented to generate bigger exports. CSV, JSON,gofmtand table formats allowed in this command.
v0.1.1 - 2019-06-10
- The list returned by the
logcommand will the sorted starting from the oldest time entry.
v0.1.0 - 2019-04-08
- Add
goreleaserto manage binary and releases of the command clockify-cli inasks user about new entry information wheninteractiveis enabled- Command
clockify-cli config initallows to start a fresh setup, creating a configuration file - Command
clockify-cli config setupdates/creates one configuration key into the configuration file clockify-cli incommands now allow more flexible time format inputs, can be: hh:mm, hh:mm:ss, yyyy-mm-dd hh:mm or yyyy-mm-dd hh:mm:ss- Command
clockify-cli outimplemented, it will close any pending time entry, and show the last entry info when closing it with success - Command
clockify-cli in cloneimplemented, to allow creation of new time entries based on existing ones, it also close pending ones, if any - Command
clockify-cli project listwas implemented, it allows to list the projects of a workspace, format the return to table, json, and just id. Helps with script automation - Using https://github.com/spf13/viper to link environment variables and configuration
files with the global flags. User can set variables
CLOCKIFY_TOKEN,CLOCKIFY_WORKSPACEandCLOCKIFY_USER_IDinstead of using the command flags - Command
clockify-cli tagscreated, to list workspace tags - Command
clockify-cli inimplemented, to allow creation of new time entries, it also close pending ones, if any - Command
clockify-cli edit <id>implemented, to allow updates on time entries, including the in-progress one using the id: "current --debugoption to allow better understanding of the requests- Command
clockify-cli log in-progressimplemented, with options to format the output, and in the TimeEntry format, instead of TimeEntryImpl - Command
clockify-cli logimplemented, with options to format the output, will require the user for now - Package
dtocreated to hold all payload objects - Package
api.Clientto call Clockfy's API - Command
clockify-cli workspacescreated, with options to format the output - Command
clockify-cli workspaces userscreated, with options to format the output to allow retrieving the user's ID
v0.0.1 - 2019-03-03
- This CHANGELOG file to hopefully serve as an evolving example of a standardized open source project CHANGELOG.
- README now show which features are expected, and that nothings is done yet
- Golang CLI using cobra
- Makefile to help setup actions