Skip to content

fAtsteD/reporting

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Create and send report

Development

It requires uv installed before. Initialize project:

make init

Run tests:

pytest

Run with coverage:

pytest --cov=src

File with report

Each line has time, name, type and project they are divided by space-dash-space:

[hour] [minute] - [name of task] - [name of type] - [name of project]

Example:

09 00 - 0123456: Do something - develop - project of my life
10 45 - 0123456: Do something \- harder - train - project of my life
12 33 - lunch
...

!!! Task, time, project do not have 'space dash space'. !!!

Commands

The app has help in command line, read it before use. It always require some command.

report --help

Config

Create config file in the home folder ~/.reporting/config.json

Setting that can be setted:

  • hour-report-path - path to file with tasks by hours
  • sqlite-database-path - path to file with database SQLite
  • omit-task - name of tasks that will be skipped
  • minute_round_to - for what number round minutes in the report. Default 25
  • jira - settings related for working with Jira:
    • server - url to the server with Jira
    • login - user login to the account
    • password - user password to the account
    • issue-key-base - (optional) prefix for all issue key. Default empty array
  • dictionary - dictionary with shorter version of origin or reworded (can be used in omit task):
    • task - only use for task name
    • kind - only use for kind name, it has to change to alias inside
    • project - only use for project name, it has to change to alias inside
  • reporting - settings for reporting (have different class for them):
    • kinds - dictionary for transformation kinds inside to the reporting, all inside kind's keys can view in command line
    • login - user login to the account
    • password - password to the account
    • projects - dictionary for transformation projects inside to the reporting, all inside project's keys can view in command line
    • project-to-corp-struct-item - dictionary for setting related projects inside to the reporting corp struct item alias, all inside project's keys can view in command line
    • safe-send-report-days - send report without additional question when send report
    • url - main url to the reporting api
  • default-type - default type, setted if task does not have, set alias from inside name
  • default-project - default project, setted if task does not have, set alias from inside name

Example:

{
    "hour-report-path": "~/example-hours.txt",
    "sqlite-database-path": "~/reports.db",
    "omit-task": ["lunch", "break"],
    "minute-round-to": 25,
    "jira": {
        "server": "https://jira.example.domain.com/",
        "login": "test.user",
        "password": "password",
        "issue-key-base": [
            "JRA-"
        ]
    },
    "dictionary": {
        "task": {
            "l": "lunch"
        },
        "type": {},
        "project": {}
    },
    "reporting": {
        "kinds": {
            "d": "Develop",
        },
        "login": "test",
        "password": "pass",
        "projects": {
            "bs": "Best Project",
        },
        "project-to-corp-struct-item": {
            "bs": "Best Corp Struct Item Alias",
        },
        "safe-send-report-days": 1,
        "url": "https://reporting.example.com/api",
    },
    "default-type": "Development",
    "default-project": "Project"
}

How it works

Program find tasks, their type and project. Task without project or type get in default name.

Some tasks like lunch can be omitted. For that purpose they have to be in the config file in omit array. Task that has to be omitted can be anything and have any symbols like another.

JIRA

You must add 3 required configs for working with Jira: server, login, password.

Worklog setting

Issue key searches by concatenate base in the settings (default empty string) and any number before double dots. All other information for setting worklog does not need.

Reporting

Add requests through API. Firstly do requests for data then it can do what you need.

New requests can be added in the api then used in reporting.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages