{"id":17320341,"url":"https://github.com/gdraheim/timetrack-odoo","last_synced_at":"2026-02-10T22:34:14.690Z","repository":{"id":53892736,"uuid":"521589350","full_name":"gdraheim/timetrack-odoo","owner":"gdraheim","description":"Synchronize odoo-import data from Timetrack notes with Odoo Timesheets and Jira Worklogs via their API","archived":false,"fork":false,"pushed_at":"2025-11-11T19:08:27.000Z","size":2633,"stargazers_count":0,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-11-11T19:22:43.497Z","etag":null,"topics":["commandline-tool","jira-worklog","odoo","time-reporting","timesheet-management","timesheet-upload","timetrack"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/gdraheim.png","metadata":{"files":{"readme":"README.md","changelog":"HISTORY.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2022-08-05T10:04:55.000Z","updated_at":"2025-11-11T19:08:31.000Z","dependencies_parsed_at":"2024-09-06T11:40:44.228Z","dependency_job_id":"a8cb38e4-12bb-40f2-8630-8d7dd0133891","html_url":"https://github.com/gdraheim/timetrack-odoo","commit_stats":{"total_commits":361,"total_committers":1,"mean_commits":361.0,"dds":0.0,"last_synced_commit":"5132c5451e07299e3d3837433d66bab2f680bbf2"},"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/gdraheim/timetrack-odoo","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gdraheim%2Ftimetrack-odoo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gdraheim%2Ftimetrack-odoo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gdraheim%2Ftimetrack-odoo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gdraheim%2Ftimetrack-odoo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gdraheim","download_url":"https://codeload.github.com/gdraheim/timetrack-odoo/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gdraheim%2Ftimetrack-odoo/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29319690,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-10T20:44:44.282Z","status":"ssl_error","status_checked_at":"2026-02-10T20:44:43.393Z","response_time":65,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["commandline-tool","jira-worklog","odoo","time-reporting","timesheet-management","timesheet-upload","timetrack"],"created_at":"2024-10-15T13:30:12.378Z","updated_at":"2026-02-10T22:34:14.623Z","avatar_url":"https://github.com/gdraheim.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Style Check](https://github.com/gdraheim/timetrack-odoo/actions/workflows/stylecheck.yml/badge.svg?event=push\u0026branch=main)](https://github.com/gdraheim/timetrack-odoo/actions/workflows/stylecheck.yml)\n[![Type Check](https://github.com/gdraheim/timetrack-odoo/actions/workflows/typecheck.yml/badge.svg?event=push\u0026branch=main)](https://github.com/gdraheim/timetrack-odoo/actions/workflows/typecheck.yml)\n[![Unit Tests](https://img.shields.io/badge/basic%20unit%20tests-578%20tests-brightgreen)](https://github.com/gdraheim/timetrack-odoo/actions/workflows/unittests.yml)\n[![PyPI version](https://badge.fury.io/py/timetrack-odoo.svg)](https://pypi.org/project/timetrack-odoo/)\n\n## TIMETRACK ODOO (and JIRA Worklogs and more)\n\nTimetrack is a synchronisation tool for work hours. It can read, write and\nupdate different data bases.\n\n* [Odoo Timesheet](https://www.odoo.com/app/timesheet-features) via REST API\n* [Jira Issue Worklogs](https://confluence.atlassian.com/jirasoftwareserver/logging-work-on-issues-939938944.html) via REST API\n* zeit.txt timetrack notes as a local file\n\nIt was originally used to push local timetrack notes to Odoo timesheet tracking.\nIf all work notes (in the description field) have a symbolic prefix then the\ndata can also be updated later - for every day the tool assumes that the \nsymbolic prefix is used only once. Here's a mapping definition in two lines\nfollowed by two lines for the work notes.\n\n    \u003e\u003e app1 [PRJ Contract 2023]\n    \u003e\u003e app1 \"App1 Development\"\n    so **** WEEK 08.01.-15.01.\n    mo 5:00 app1 extended frontend\n\nThis can be pushed to Odoo with `./zeit2odoo.py -f zeit.txt update`. It defaults\nto dryrun and the real write operations are done when adding `-y`. For Jira you\nneed to to configure a ticket number `\u003e\u003e app1 BUG-1234` so that the tool knows\nwhere to add worklog entries when using `./zeit2jira.py -f zeit.txt update`.\n\nSurley, it only works when the basic setup was done where you have configured \nthe urls and login credentials. However for the biggest part you need to setup\nthe mapping of different work topics to their Odoo and Jira accounts. If you\ndo already have data in Odoo then you can get a `zeit` summary from it for a\nquick start with `./odoo2data.py lastmonth zeit`. Save it with `-O zeit.txt`.\n\n---\n\n* [setup.quickstart](setup.quickstart.md) - the BASIC SETUP takes about one hour\n\n| Documentation                           | Topic                           |\n| --------------------------------------- | ------------------------------- |\n| [odoo2data.setup](odoo2data.setup.md)   | generate reports for Odoo data  |\n| [jira2data.setup](jira2data.setup.md)   | generate reports for Jira data  |\n| [zeit2json.setup](zeit2json.setup.md)   | generate reports for Zeit       |\n| [zeit2odoo.setup](zeit2odoo.setup.md)   | synchronize Zeit to Odoo        |\n| [zeit2jira.setup](zeit2jira.setup.md)   | synchronize Zeit to Jira        |\n| [odoo2data API](odoo2data_api.setup.md) | Odoo API hints                  |\n| [tabtotext.setup](tabtotext.setup.md)   | how report tables are generated |\n| [dotnetrc.setup](dotnetrc.setup.md)     | how credentials are stored      |\n\nand some [HISTORY](HISTORY.md) / overview of  [FEATURES](FEATURES.md) / latest [RELEASENOTES](RELEASENOTES.md)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgdraheim%2Ftimetrack-odoo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgdraheim%2Ftimetrack-odoo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgdraheim%2Ftimetrack-odoo/lists"}