Configuration
This page documents the available settings for minutes
. Please note that not all configuration options are covered by a CLI flag.
Configuration file¶
Minutes will look for the following places for the configuration file, based on your operating system.
The configuration file name in every case is .minutes.toml
.
Linux/Unix¶
On Linux/Unix systems, the following locations are checked for the configuration file:
$HOME/.minutes.toml
$XDG_CONFIG_HOME/.minutes.toml
as specified by https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html
Darwin¶
$HOME/.minutes.toml
$HOME/Library/Application Support/.minutes.toml
Windows¶
%USERPROFILE%/.minutes.toml
%AppData%/.minutes.toml
On Plan 9¶
$home/.minutes.toml
$home/lib/.minutes.toml
Common configuration¶
Config option | Kind | Description | Example | Available options |
---|---|---|---|---|
date-format | string | Set the date format in Go specific date format | date-format = "2006-01-02" | |
dry-run | bool | Fetch entries from source, print the fetched entries, but do not upload them | dry-run = true | |
end | string | Set the end date for fetching entries (must match the date-format ) | end = "2021-10-01" | |
filter-client | string | Regex of the client name to filter for | filter-client = '^ACME Inc.?(orporation)$' | |
filter-project | string | Regex of the project name to filter for | filter-project = '.(website).' | |
force-billed-duration | bool | Treat the total spent time as billable time | force-billed-duration = true | |
round-to-closest-minute | bool | Round time to closest minute, even if the closest minute is 0 (zero) | round-to-closest-minute = true | |
source | string | Set the fetch source name | source = "tempo" | Check the list of available sources |
source-user | string | Set the fetch source user ID | source-user = "gabor-boros" | |
start | string | Set the start date for fetching entries (must match the date-format ) | start = "2021-10-01" | |
table-column-config | []table.ColumnConfig | Customize columns based on the underlying column config struct1 | table-column-config = { summary = { widthmax = 40 } } | |
table-hide-column | []string | Hide the specified columns of the printed overview table | table-hide-column = ["start", "end"] | summary , project , client , start , end |
table-sort-by | []string | Sort the specified rows of the printed table by the given column; each sort option can have a - (hyphen) prefix to indicate descending sort | table-sort-by = ["start", "task"] | task , summary , project , client , start , end , billable , unbillable |
table-truncate-column | map[string]int | Truncate text in the given column to contain no more than x characters, where x is set by int | table-truncate-column = { summary = 30 } | |
target | string | Set the upload target name | target = "tempo" | Check the list of available targets |
target-user | string | Set the upload target user ID | target = "gabor-boros" | |
tags-as-tasks-regex | string | Regex of the task pattern | tags-as-tasks-regex = '[A-Z]{2,7}-\d{1,6}' |
Source and target specific configuration¶
Source and target specific configuration is not covered by this guide. For more information, please refer to the source or target documentation.
Example configuration¶
# Source config
source = "clockify"
source-user = "<clockify user ID>"
clockify-url = "https://api.clockify.me"
clockify-api-key = "<clockify API token>"
clockify-workspace = "<clockify workspace ID>"
# Target config
target = "tempo"
target-user = "<jira username>"
tempo-url = "https://<org>.atlassian.net"
tempo-username = "<jira username>"
tempo-password = "<jira password>"
# General config
tags-as-tasks-regex = '[A-Z]{2,7}-\d{1,6}'
round-to-closest-minute = true
force-billed-duration = true
filter-client = '^ACME Inc\.?(orporation)$'
filter-project = '.*(website).*'
table-sort-by = [
"start",
"project",
"task",
"summary",
]
table-hide-column = [
"end"
]
[table-column-truncates]
summary = 40
project = 10
client = 10
# Column Config
[table-column-config.summary]
widthmax = 40
widthmin = 20
-
The column configuration cannot be mapped directly as-is. Therefore, the configuration option names are lower-cased. Also, some settings cannot be used that would require Go code, like transformers. ↩