{"id":13689364,"url":"https://github.com/AndrewNeudegg/labtime","last_synced_at":"2025-05-01T23:33:59.686Z","repository":{"id":95994442,"uuid":"181215155","full_name":"AndrewNeudegg/labtime","owner":"AndrewNeudegg","description":"A Golang tool for extracting useful information from a Gitlab instance.","archived":false,"fork":false,"pushed_at":"2019-04-23T07:52:06.000Z","size":31,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-08-03T15:17:28.847Z","etag":null,"topics":["gitlab","golang","time-tracking"],"latest_commit_sha":null,"homepage":null,"language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/AndrewNeudegg.png","metadata":{"files":{"readme":"README.md","changelog":null,"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}},"created_at":"2019-04-13T18:50:31.000Z","updated_at":"2022-12-01T22:36:19.000Z","dependencies_parsed_at":"2023-03-27T17:55:31.626Z","dependency_job_id":null,"html_url":"https://github.com/AndrewNeudegg/labtime","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AndrewNeudegg%2Flabtime","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AndrewNeudegg%2Flabtime/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AndrewNeudegg%2Flabtime/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AndrewNeudegg%2Flabtime/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AndrewNeudegg","download_url":"https://codeload.github.com/AndrewNeudegg/labtime/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":224282245,"owners_count":17285795,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["gitlab","golang","time-tracking"],"created_at":"2024-08-02T15:01:44.711Z","updated_at":"2024-11-12T13:31:32.288Z","avatar_url":"https://github.com/AndrewNeudegg.png","language":"Go","readme":"# labtime\n\nA Golang tool for extracting useful information from a Gitlab instance.\n\n## Contents\n\n- [labtime](#labtime)\n  - [Contents](#contents)\n  - [State of development](#state-of-development)\n  - [Software Status](#software-status)\n  - [Description](#description)\n  - [Configuration](#configuration)\n    - [YAML Configuration file](#yaml-configuration-file)\n    - [Jinja2 Configuration](#jinja2-configuration)\n  - [Roadmap](#roadmap)\n\n## State of development\n\nThis application is still under active development. Things may change or break, I will try to reduce the risk of this happening but I cannot commit to non breaking changes at this time.\n\n## Software Status\n\n| Item        | Value |\n| ----------- | ----- |\n| Version     | 0.0.1 |\n| Status      | Alpha |\n| Testing     | None  |\n| QA          | None  |\n| Issues      | None  |\n| MRs         | None  |\n| Performance | Bad   |\n\n\n## Description\n\n`labtime` will enable users to pull specific pieces information using API Tokens from the Gitlab API.\n\n## Configuration\n\n### YAML Configuration file\nThe default configuration file is always written to `config/default/config.yml`, personalised configuration should live under `config/custom/config.yml`.\n\n```yml\ninstance:\n  url: gitlab.somedomain.com\n  username: coder1\n  accesstoken: \"12345\"\n  project: collection/project\nqueryconfig:\n  timeentrydetectionregex: /time spent/g\n  timeentryextractionregex: (?P\u003cmonth\u003e[0-9]+)(mo)|(?P\u003cweek\u003e[0-9]+)(w)|(?P\u003cday\u003e[0-9]+)(d)|(?P\u003chour\u003e[0-9]+)(h)|(?P\u003cminute\u003e[0-9]+)(m)|(?P\u003csecond\u003e[0-9]+)(s)\n```\n\n### Jinja2 Configuration\n\nTo customise the output of the application edit the Jinja2 template files under `templates`. For instance `templates/IssueOverview.csv.j2` will output a CSV formatted file that will describe the time spent on all stored issues.\n\n```jinja\n{% for issue in ctx.ListProjectIssues() %}{{ issue.IID }},{{ ctx.TotalTimeSpent(issue) }}\n{% endfor %}\n```\n\nThis will output a file of the form:\n\n```csv\n44,1.000000\n43,3.800000\n42,0.000000\n41,0.200000\n40,0.300000\n39,0.400000\n38,0.000000\n37,0.000000\n36,0.000000\n35,0.000000\n34,12.800000\n```\n\nThe first column is the issue number, the second is the time in booked to that issue in days.\n\n## Roadmap\nThere are lots of things left to do here, this is a PoC more than an application that should be used. I would be keen to improve performance and documentation. Testing and additional functionality is a must also.\n\nFinally I would like to package this as a `go get`table application.","funding_links":[],"categories":["golang"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FAndrewNeudegg%2Flabtime","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FAndrewNeudegg%2Flabtime","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FAndrewNeudegg%2Flabtime/lists"}