{"id":15510381,"url":"https://github.com/ananace/matrix-releasetracker","last_synced_at":"2025-10-16T00:39:29.680Z","repository":{"id":45690792,"uuid":"137684477","full_name":"ananace/matrix-releasetracker","owner":"ananace","description":"Release tracker that posts updates into Matrix rooms","archived":false,"fork":false,"pushed_at":"2023-06-01T09:03:08.000Z","size":386,"stargazers_count":25,"open_issues_count":3,"forks_count":3,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-23T02:54:12.975Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Ruby","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/ananace.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-06-17T20:22:52.000Z","updated_at":"2025-04-22T21:47:59.000Z","dependencies_parsed_at":"2025-03-05T00:32:02.777Z","dependency_job_id":null,"html_url":"https://github.com/ananace/matrix-releasetracker","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ananace/matrix-releasetracker","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ananace%2Fmatrix-releasetracker","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ananace%2Fmatrix-releasetracker/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ananace%2Fmatrix-releasetracker/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ananace%2Fmatrix-releasetracker/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ananace","download_url":"https://codeload.github.com/ananace/matrix-releasetracker/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ananace%2Fmatrix-releasetracker/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":273414445,"owners_count":25101406,"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","status":"online","status_checked_at":"2025-09-03T02:00:09.631Z","response_time":76,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":[],"created_at":"2024-10-02T09:48:09.447Z","updated_at":"2025-10-16T00:39:29.598Z","avatar_url":"https://github.com/ananace.png","language":"Ruby","funding_links":[],"categories":["Bots"],"sub_categories":["Moderation"],"readme":"# Matrix Releasetracker\n\nFor more information, questions, or just the use of the hosted version, you can visit [#releasetracker:kittenface.studio](https://matrix.to/#/#releasetracker:kittenface.studio).\n\n![Example image](https://i.imgur.com/iAP1rMs.png)\n\n## Usage\nThe tracked repositories can be configured in multiple ways.\n\n### Bot-command\nSend the message `!github \u003cusername\u003e` to the bot.\nThis would track all repositories starred by the defined user.\n\n### State event\nA more fine-grained approach is to save the tracked entities in the room state of a room you share with the bot.\nSend 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.\n\nExample state event for advanced tracking;\n\n```jsonc\n{\n  \"type\": \"dev.ananace.ReleaseTracker\",\n  \"sender\": \"@ace:kittenface.studio\",\n  \"content\": {\n    \"type\": \"m.text\", // m.notice by default\n    \"tracking\": [\n      // GitHub repositories;\n      \"github:r/vector-im/element-web\",\n      \"github:r/matrix-org/synapse\",\n\n      // GitHub group;\n      \"github:g/netbox-community\",\n\n      // GitHub user (all starred repositories)\n      \"github:u/ananace\",\n\n      // GitLab(.com) repository;\n      \"gitlab:r/mb-saces/synatainer\",\n      // GitLab(.com) group;\n      \"gitlab:g/mb-saces\",\n      // GitLab(.com) user stars; (with a token for if the tracker doesn't have one configured)\n      \"gitlab:access_token@u/mb-saces\",\n\n      // GitLab (self-hosted) repository;\n      \"gitlab://dev.funkwhale.audio/r/funkwhale/funkwhale\",\n      // GitLab (self-hosted) user stars; (with a token for if the tracker doesn't have one configured)\n      \"gitlab://access_token@git.example.com/u/user\",\n      \"gitlab://\u003cuser\u003e:access_token@git.example.com/u/user\",\n\n      // Gitea repository;\n      \"gitea://git.example.com/r/user/repository\",\n      // Gitea user stars; (with a token for if the tracker doesn't have one configured)\n      \"gitea://token@git.example.com/u/user\",\n\n      // Bare git repo;\n      \"git+https://user:password@git.example.com/private/repo\",\n      \"git+https://git.zx2c4.com/wireguard-tools\",\n      \"git+ssh://git@git.zx2c4.com/wireguard-tools\",\n      \"git://git.zx2c4.com/wireguard-tools\"\n    ]\n  },\n  \"state_key\": \"\",\n  \"origin_server_ts\": 1657845040362,\n  \"event_id\": \"$Of010lcT1D19peJ9pZFAN4vV6dYwlAXtVYg_0rGSESs\",\n  \"room_id\": \"!YcpuFlnupDnkbqHuKU:example.com\"\n}\n```\n\n### Installation\n\nThe `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.\n\nExample `releasetracker.yml` config-file:\n\n```yaml\n---\n:backends:\n- :access_token: 0000000000000000000000000000000000000000 # GitHub access token - needs the public_repo scope\n  # also acceptable are a :login, :password combination - or :client_id, :client_secret for OAuth - without GraphQL support\n  # It's also possible to skip the authentication entirely, to run with heavily reduced limits and only REST API functionality\n  :type: github\n- :type: gitlab\n- :type: gitea\n- :type: git\n:client:\n  :hs_url: https://matrix.org\n  :access_token: \u003ctoken\u003e\n:database:\n  # Will default to sqlite stored in database.db in the working-directory\n  :connection_string: sqlite://database.db\n```\n\nA more fully featured configuration example can be seen in [releasetracker.yml.example](releasetracker.yml.example)\n\n#### Systemd\nExample systemd unit:\n\n```ini\n# ~/.config/systemd/user/matrix-releasetracker.service\n[Unit]\nDescription=Release tracker for Matrix\n\n[Service]\nType=simple\nWorkingDirectory=/opt/matrix-releasetracker\nExecStart=/bin/bash -lc 'bundle exec bin/tracker'\nRestart=on-failure\n\n[Install]\nWantedBy=default.target\n```\n\n#### Docker-compose\nYou can use the image from [Dockerhub](https://hub.docker.com/r/ananace/matrix-releasetracker).\nExample `docker-compose.yml`\n```yaml\nversion: \"3.7\"\nservices:\n  matrix-release-tracker:\n    restart: \"unless-stopped\"\n    image: \"ananace/matrix-releasetracker:latest\"\n    volumes:\n      - \"./releasetracker.yml:/app/releasetracker.yml\"\n```\n\n## TODO\n\n- Write a whole bunch of tests\n- Expose configuration for allowed release types (lightweight tag, signed tag, pre-release, full release, etc)\n- Handle multiple releases in a short period (between two ticks) more gracefully\n- Implement bot-like bang commands to act on the configuration\n- Handle PGP signatures better, don't just print the signature\n\n## Contributing\n\nBug reports and pull requests are welcome on GitHub at https://github.com/ananace/matrix-releasetracker\n\n## License\n\nThe gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fananace%2Fmatrix-releasetracker","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fananace%2Fmatrix-releasetracker","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fananace%2Fmatrix-releasetracker/lists"}