task_tracker Fast task tracker (job queue) with authentication, statistics and web frontend

Documentation

Installation instructions here, API documentation here.

Go client documentation here.

Python client documentation here.

Get started

Login and create a project from the New project tab

To enable Webhooks (See step 4), enter a git url and a repository name

You can chain tasks to another project if you also have permissions on that project. Tasks will be duplicated on this project when they are marked as closed.

Register a worker

{{
                        'POST /worker/create\n{\n' +
                        '  "alias": "' + ('index.alias'|translate) +
                        '"\n}\n\n'}}

Tracker response:

{{
                        '{\n' +
                        '  "ok": true,\n' +
                        '  "content": {\n' +
                        '    "worker": {\n' +
                        '      "id": 45,\n' +
                        '      "created": 1550442984,\n' +
                        '      "alias": "' + ('index.alias'|translate) +
                        '",\n      "secret": "PvFRQZK7CpSP+4fc0iczfn++PbWh7qMLVfO1+Y3d6X4="\n' +
                        '    }\n' +
                        '  }\n' +
                        '}'}}

Workers need to request access to private or hidden projects to submit new tasks. Public projects do not require any additional configuration.

{{
                        'POST /project/request_access\n{\n' +
                        '  "assign": true,\n' +
                        '  "submit": true,\n' +
                        '  "project": 23\n}'
                        }}

You will be given READ, EDIT and MANAGE_ACCESS roles from projects you create. You can also give access to other project managers from the project permissions page

A webhook secret is auto-generated when the project is created, you can consult/update it from the project's dashboard. Point Github/Gogs/Gitea payloads to this address:

{{apiService.url}}/receivewebhook

Workers will be made aware of version changes on the master branch when they assign themselves to new tasks:

{{
                        'GET /task/get\n\n{\n' +
                        '  "id": 24,\n' +
                        '  "priority": 1,\n' +
                        '  ...\n' +
                        '  "project": {\n' +
                        '    "id": 1,\n' +
                        '    ...\n' +
                        '    "version": "<' + ('index.version'|translate) +
                        '>",\n  }\n}'}}
                    
{{index + 1}}