Home

Awesome

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.