|
2 months ago | |
---|---|---|
app | 2 months ago | |
.gitignore | 3 months ago | |
README.org | 3 months ago | |
box.json | 3 months ago |
README.org
Report cli
Automate generating invoices from youtrack reports and other time-tracking related functionality.
Usage
./rprt.php invoice -y -p -s
This command would send an invoice for last month created from the template file and last month report from youtrack as an email attachment.
./rprt.php report -r
Asks which report to print from the list of your reports and then prints out a table with that report.
Install/Getting started
Get .phar
file from r, run configuration wizzard (planned for version 1.0).
Before version 1.0 is released you have to navigate into /app
directory
and call command through .rprt.php
file.
Requirements
-
You have to create a youtrack API token.
-
You have to configure rprt-cli app.
-
Default folder that app checks for config file is in
~/.config/rprt-cli/
.
-
-
You have to allow less secure applications in your gmail if you are using that email provider.
Building a phar
php box: https://github.com/box-project/box
./box.phar compile
Specs
A simple Console Command that prints out monthly report from youtrack.
Simple configuration:
-
authentication token value
-
project categories
-
hourly wage
-
folder for reports
Components
-
report service - provides a csv of a report
-
local csv file read (provided via argument)
-
youtrack api request (with Guzzle and Youtrack API php client )
-
-
parse report
-
compute hours per configured project categories from report
-
output a table
-
-
Create an invoice
-
send the invoice (to Wolfgang)
-
ValueObjects
List my reports
curl 'https://drunomics.myjetbrains.com/youtrack/api/reports?$top=-1&fields=id,name,own,owner(login,name)&query=owner:+%7Bme%7D' -H "Authorization: Bearer $YTOKEN" -H 'Cache-Control: no-cache' | jq '.[] | select( .own == true )'
Motivation
-
practice php
-
automatization of repetitive task
-
is it worth it? according to xkcd table - you should spend 1 day for automating a monthly task that takes 30 minutes. That would be if only I'd be using this app. If it get's picked up, by 5 others - it is worth 5 days of development.
-
-
remove errors from reports
Plan
most current
-
For version 0.6.7
-
data value objects
-
phar file
-
additional expenses
-
-
For version 1.0
-
plugin system
-
for time tracking services
-
for reports
-
-
symfony/config & symfony/di components
-
current
-
For Version 1.0
-
Track Command (track time from your cli)
-
Report Command (read reports)
-
Improve code and code style
-
.phar
file for simple app shipping
-
-
Version 2.0
-
Implement templateing service
-
Further code improvements
-
Configuration Wizzard
-
-
Version 3.0
-
Emacs package to track directly from orgmode
-
Add tests
-
old
-
Basic structure of the cli-app
-
App preparation
-
nice specifications
-
composer project
-
autoloading & dependency injection
-
-
Report service
-
read a local csv file
-
-
Parse report
-
read configuration (project categories, hourly wage)
-
simple table output
-
-
-
First round of enhancements
-
Tests
-
youtrack request
-
create composer package, create executable
-
-
Second round of enhancements
-
Invoice output
-
configuration wizard
-
Learning
-
https://www.youtube.com/watch?v=aCqM9YnjTe0
-
Choices (
new ChoiceQuestion
) -
addOption('config')
-
API calls
Get csv file
curl 'https://drunomics.myjetbrains.com/youtrack/api/reports/83-554/export/csv?&$top=-1' -H 'Accept: application/json, text/plain, */*' -H 'Accept-Language: en-US,en;q=0.5' --compressed -H "Authorization: Bearer $TKN" > ~/Documents/Drunomics/workhours/2021/21-09.csv