For more information, questions, or just the use of the hosted version, you can visit #releasetracker:kittenface.studio.
The tracked repositories can be configured in multiple ways.
Send the message !github <username>
to the bot.
This would track all repositories starred by the defined user.
A more fine-grained approach is to save the tracked entities in the room state of a room you share with the bot.
Send a state event (e.g. via Element with /devtools
) containing all the things you want to track. These can be easily updated with another state event.
Example state event for advanced tracking;
The bin/tracker
binary will track and post updates on new GitHub releases, it requires a releasetracker.yml
configuration file that it can read and write to.
Example releasetracker.yml
config-file:
---
:backends:
- :access_token: 0000000000000000000000000000000000000000 # GitHub access token - needs the public_repo scope
# also acceptable are a :login, :password combination - or :client_id, :client_secret for OAuth - without GraphQL support
# It's also possible to skip the authentication entirely, to run with heavily reduced limits and only REST API functionality
:type: github
- :type: gitlab
- :type: gitea
- :type: git
:client:
:hs_url: https://matrix.org
:access_token: <token>
:database:
# Will default to sqlite stored in database.db in the working-directory
:connection_string: sqlite://database.db
A more fully featured configuration example can be seen in releasetracker.yml.example
Example systemd unit:
# ~/.config/systemd/user/matrix-releasetracker.service
[Unit]
Description=Release tracker for Matrix
[Service]
Type=simple
WorkingDirectory=/opt/matrix-releasetracker
ExecStart=/bin/bash -lc 'bundle exec bin/tracker'
Restart=on-failure
[Install]
WantedBy=default.target
You can use the image from Dockerhub.
Example docker-compose.yml
version: "3.7"
services:
matrix-release-tracker:
restart: "unless-stopped"
image: "ananace/matrix-releasetracker:latest"
volumes:
- "./releasetracker.yml:/app/releasetracker.yml"
- Write a whole bunch of tests
- Expose configuration for allowed release types (lightweight tag, signed tag, pre-release, full release, etc)
- Handle multiple releases in a short period (between two ticks) more gracefully
- Implement bot-like bang commands to act on the configuration
- Handle PGP signatures better, don't just print the signature
Bug reports and pull requests are welcome on GitHub at https://github.com/ananace/matrix-releasetracker
The gem is available as open source under the terms of the MIT License.