Example Usage∞
Note: After having set up a local configuration, normally only two of the many possible environment
variables are set: LASKEA_USER
and LASKEA_TOKEN
. In some cases the debug variable LASKEA_DEBUG
may be helpful temporarily.
Help∞
❯ laskea
Usage: laskea [OPTIONS] COMMAND [ARGS]...
Calculate (Finnish: laskea) some parts.
╭─ Options ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ --version -V Display the laskea version and exit │
│ --help -h Show this message and exit. │
╰───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
╭─ Commands ────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ csv Export query result as separated values list. │
│ report Output either text options for the user to report her env or the report of the environment for support. │
│ template Write a template of a well-formed JSON configuration to standard out and exit │
│ update Fill in some parts of the input document. │
│ version Display the laskea version and exit. │
╰───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
Report∞
❯ laskea report
--------------------------------------------------------------------------------
Date: Mon Nov 07 23:30:02 2022 CET
OS : Darwin
CPU(s) : 4096
Machine : arm64
Architecture : 64bit
RAM : 1234.0 GiB
Environment : Python
File system : apfs
Python 3.10.5 (main, Jun 17 2022, 17:48:58) [Clang 13.0.0
(clang-1300.0.29.30)]
laskea : 2022.11.7+parent.a947952e
atlassian : 3.28.1
cogapp.cogapp : 3.3.0
jmespath : 1.0.1
pydantic : 1.10.2
requests_cache : 0.9.7
scooby : 0.7.0
typer : 0.6.1
--------------------------------------------------------------------------------
Help∞
Usage: laskea report [OPTIONS]
Output either text options for the user to report her env or the report of the environment for support.
╭─ Options ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ --shallow -s Shallow reporting - no setuptools required (default is False) │
│ --help -h Show this message and exit. │
╰───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
Template∞
❯ laskea template
{
"table": {
"column": {
"fields": [
"Key",
"Summary",
"Custom Field Name",
"Custom Field Other"
],
"field_map": {
"key": [
"key",
"key"
],
"summary": [
"summary",
"fields.summary"
],
"custom field name": [
"customfield_11501",
"fields.customfield_11501"
],
"custom field other": [
"customfield_13901",
"fields.customfield_13901[].value"
]
},
"lf_only": true,
"join_string": " <br>"
}
},
"remote": {
"is_cloud": false,
"user": "",
"token": "",
"base_url": "https://remote-jira-instance.example.com/"
},
"local": {
"markers": "[[[fill ]]] [[[end]]]",
"quiet": false,
"verbose": false,
"strict": false
},
"excel": {
"mbom": "mbom.xlsm"
},
"tabulator": {
"overview": {
"base_url": "https://example.com/metrics/",
"path": "$year$/kpi-table-$year$.json",
"years": [2022],
"matrix": [
["section", "Section", False, "L"],
["name", "Name", False, "L"],
["unit", "Unit", False, "C"],
["all", "ALL", True, "R"],
["pr1", "PR1", True, "R"],
["pr2", "PR2", True, "R"],
["pr3", "PR3", True, "R"],
["description", "Description", False, "L"]
]
},
"metrics": {
"base_url": "https://example.com/metrics/",
"paths": {
"review_effectivity": "$year$/review_effectivity/kpi-review_effectivity-per_product-report-$year$.json",
"sprint_effectivity": "$year$/sprint_effectivity/kpi-sprint_effectivity-per_product-report-$year$.json",
"task_traceability": "$year$/task_traceability/kpi-task_traceability-per_product-report-$year$.json",
},
"years": [2021, 2022],
"matrix": [
["month", "Month", False, "L"],
["all", "ALL", True, "R"],
["pr1", "PR1", True, "R"],
["pr2", "PR2", True, "R"],
["pr3", "PR3", True, "R"],
["trend_all", "±ALL", True, "R"],
["trend_pr1", "±PR1", True, "R"],
["trend_pr2", "±PR2", True, "R"],
["trend_pr3", "±PR3", True, "R"]
]
}
}
}
Help∞
❯ laskea template --help
Usage: laskea template [OPTIONS]
Write a template of a well-formed JSON configuration to standard out and exit
The strategy for looking up configurations is to start at the current working directory trying to read a file with the name
`.laskea.json` else try to read same named file in the user folder (home).
In case an explicit path is given to the config option of commands that offer it, only that path is considered.
╭─ Options ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ --help -h Show this message and exit. │
╰───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
CSV (Separated Values List)∞
❯ laskea csv -h
Usage: laskea csv [OPTIONS] [QUERY]
Export query result as separated values list.
You can set some options per evironment variables:
* LASKEA_USER='remote-user'
* LASKEA_TOKEN='remote-secret'
* LASKEA_BASE_URL='https://remote-jira-instance.example.com/'
* LASKEA_CACHE_EXPIRY_SECONDS=180
* LASKEA_COL_FIELDS: '["Key", "Summary", "Custom Field Name"]'
* LASKEA_COL_MAPS='{"key": ["key", "key"], "summary": ["summary", "fields.summary"],
"custom field name": ["customfield_123", "fields.customfield_123"]}'
* LASKEA_JOIN_STRING=' <br>'
* LASKEA_LF_ONLY='AnythingTruthy'
* LASKEA_IS_CLOUD='WhenNotConnectingToJiraServerButJiraCloud'
* LASKEA_MARKERS='[[[fill ]]] [[[end]]]'
* LASKEA_DEBUG='AnythingTruthy'
* LASKEA_VERBOSE='AnythingTruthy'
* LASKEA_STRICT='AnythingTruthy'
The quiet option (if given) disables any conflicting verbosity setting.
╭─ Arguments ─────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ query [QUERY] │
╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
╭─ Options ───────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ --jql-query -j <jql-query> The query in JQL format. For example given a project YES │
│ and two issues 123 and 124: 'project = YES and key in │
│ (YES-123, YES-124) order by created DESC' │
│ --config -c <configpath> Path to config file (default is $HOME/.laskea.json) │
│ --key-magic -k Apply magic to key by replacing with markdown like link │
│ (default is False) │
│ --delimiter -d <field-separator> Delimiter / field separator On output, header and data cell │
│ values will have any occurences of the field separator │
│ replaced with the replacement string │
│ [default: |] │
│ --replacement -r <replacement-text> Replacement string for occurences of FS in text │
│ On output, header and data cell values will have any │
│ occurences of the field separator replaced with the │
│ replacement string │
│ [default: $FIELD_SEPARATOR$] │
│ --dry-run -n Dry run (default is False) │
│ --verbose -v Verbose output (default is False) │
│ --strict -s Ouput noisy warnings on console and in the processed │
│ document (default is False) │
│ --cache-expiry-seconds -x INTEGER Request cache expiry in seconds [default: 180] │
│ --help -h Show this message and exit. │
╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
Update∞
❯ laskea update test/fixtures/basic/empty.md
Reading from discovered configuration path /home/ofsomeone/.laskea.json
Configuration interface combined file, environment, and commandline values!
Effective configuration combining /home/ofsomeone/.laskea.json, environment variables, and defaults:
# --- BEGIN ---
{
"table": {
"column": {
"fields": [
"Key",
"Summary",
"Custom Field Name",
"Custom Field Other"
],
"field_map": {
"key": [
"key",
"key"
],
"summary": [
"summary",
"fields.summary"
],
"custom field name": [
"customfield_11501",
"fields.customfield_11501"
],
"custom field other": [
"customfield_13901",
"fields.customfield_13901[].value"
]
},
"lf_only": false,
"join_string": " <br>"
}
},
"remote": {
"is_cloud": true,
"user": "someuser",
"token": "",
"base_url": "https://some.server.example.com/"
},
"local": {
"markers": "[[[fill ]]] [[[end]]]",
"quiet": false,
"verbose": false,
"strict": false
}
}
# --- E N D ---
Cogging tests/fixtures/basic/empty.md
Using the mbom_table('mbom.xlsx')
feature requires an excel workbook mbom.xlsx
with
fields like e.g.:
Level P/N Item Name SW Version
0 1233333 asdasd
1 124 a a 1
2 123 b b 2
The resulting markdown inject after update will look like:
<!--[[[fill mbom_table('mbom.xlsx')]]]-->
<!-- anchor: ('0', '1233333', 'asdasd', '')-->
| Level | P/N | Item Name | SW Version |
|:------|:----|:----------|:-----------|
| 1 | 124 | a a | 1 |
| 2 | 123 | b b | 2 |
<!-- source: mbom.xlsx-->
<!-- s-hash: sha512:98f49a212325387c2a800c000f6892879a38cae9fde357cca3de57bfcc18bb285d34ad81f19fae1df735ec85e8ada40e7f4ae06ffb5bfb4f89bc7592c8d63111-->
<!--[[[end]]] (checksum: 758ae76dfd82d3d10a9930047ea4a71f)-->
Help∞
❯ laskea update -h
Usage: laskea update [OPTIONS] SOURCE...
Fill in some parts of the input document.
You can set some options per evironment variables:
* LASKEA_USER='remote-user'
* LASKEA_TOKEN='remote-secret'
* LASKEA_BASE_URL='https://remote-jira-instance.example.com/'
* LASKEA_CACHE_EXPIRY_SECONDS=180
* LASKEA_COL_FIELDS: '["Key", "Summary", "Custom Field Name"]'
* LASKEA_COL_MAPS='{"key": ["key", "key"], "summary": ["summary", "fields.summary"],
"custom field name": ["customfield_123", "fields.customfield_123"]}'
* LASKEA_JOIN_STRING=' <br>'
* LASKEA_LF_ONLY='AnythingTruthy'
* LASKEA_IS_CLOUD='WhenNotConnectingToJiraServerButJiraCloud'
* LASKEA_MARKERS='[[[fill ]]] [[[end]]]'
* LASKEA_DEBUG='AnythingTruthy'
* LASKEA_VERBOSE='AnythingTruthy'
* LASKEA_STRICT='AnythingTruthy'
The quiet option (if given) disables any conflicting verbosity setting.
╭─ Arguments ──────────────────────────────────────────────────────────────────────────────────────╮
│ * source SOURCE... [default: None] [required] │
╰──────────────────────────────────────────────────────────────────────────────────────────────────╯
╭─ Options ────────────────────────────────────────────────────────────────────────────────────────╮
│ --input -i <sourcepath> Path to input file │
│ --config -c <configpath> Path to config file (default is │
│ $HOME/.laskea.json) │
│ --dry-run -n Dry run (default is False) │
│ --verbose -v Verbose output (default is False) │
│ --quiet -q Minimal output (default is False) │
│ --strict -s Ouput noisy warnings on console and in the │
│ processed document (default is False) │
│ --cache-expiry-seconds -x INTEGER Request cache expiry in seconds [default: 180] │
│ --help -h Show this message and exit. │
╰──────────────────────────────────────────────────────────────────────────────────────────────────╯
Version∞
❯ laskea version
Calculate (Finnish: laskea) some parts. version 2022.11.7+parent.a947952e