matrix-org / rageshake

Bug report server
Apache License 2.0
30 stars 12 forks source link

rageshake Build status

Web service which collects and serves bug reports.

rageshake requires Go version 1.16 or later.

To run it, do:

go build
./bin/rageshake

Optional parameters:

Issue template

It is possible to override the templates used to construct emails, and Github and Gitlab issues. See templates/README.md for more information.

HTTP endpoints

The following HTTP endpoints are exposed:

GET /api/listing/

Serves submitted bug reports. Protected by basic HTTP auth using the username/password provided in the environment. A browsable list, collated by report submission date and time.

A whole directory can be downloaded as a tarball by appending the parameter ?format=tar.gz to the end of the URL path

POST /api/submit

Submission endpoint: this is where applications should send their reports.

The body of the request should be a multipart form-data submission, with the following form field names. (For backwards compatibility, it can also be a JSON object, but multipart is preferred as it allows more efficient transfer of the logs.)

The response (if successful) will be a JSON object with the following fields:

Notifications

You can get notifications when a new rageshake arrives on the server.

Currently this tool supports pushing notifications as GitHub issues in a repo, through a Slack webhook or by email, cf sample config file for how to configure them.

Generic Webhook Notifications

You can receive a webhook notifications when a new rageshake arrives on the server.

These requests contain all the parsed metadata, and links to the uploaded files, and any github/gitlab issues created.

Details on the request and expected response are available.

Cleanup script

A python script is provided in scripts/cleanup.py and in a docker container. It can be configured using the commandline options available via cleaup.py --help.

It can either be run via a cronjob at appropriate intervals (typically daily), or be set to run in a continual mode with something like --repeat-delay-hours 24 to repeat running after approximately 24 hours.

Note that this script will scan all logs older than the smallest configured retention period, up to the limit specified by --max-days or each of the days in --days-to-check. This can be an IO and CPU intensive process if a large number of files are scanned.