{"id":16963597,"url":"https://github.com/coderobe/expirobot","last_synced_at":"2025-06-11T20:05:12.232Z","repository":{"id":44763621,"uuid":"451919302","full_name":"coderobe/expirobot","owner":"coderobe","description":"🗝️💬 GPG key expiry notifications via Matrix","archived":false,"fork":false,"pushed_at":"2022-01-26T11:41:17.000Z","size":27,"stargazers_count":4,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-11T22:37:38.505Z","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":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/coderobe.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2022-01-25T14:53:22.000Z","updated_at":"2022-01-26T10:30:43.000Z","dependencies_parsed_at":"2022-09-09T23:41:50.739Z","dependency_job_id":null,"html_url":"https://github.com/coderobe/expirobot","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/coderobe/expirobot","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/coderobe%2Fexpirobot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/coderobe%2Fexpirobot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/coderobe%2Fexpirobot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/coderobe%2Fexpirobot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/coderobe","download_url":"https://codeload.github.com/coderobe/expirobot/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/coderobe%2Fexpirobot/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":259329370,"owners_count":22841428,"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","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-13T23:25:25.882Z","updated_at":"2025-06-11T20:05:12.192Z","avatar_url":"https://github.com/coderobe.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"# expirobot\n\nA bot that monitors GPG key expiry via matrix notifications  \nExpiry notifications are currently sent via Matrix  \nThe bot will send notifications daily once any key or subkey has fewer than 30 days of validity left.\n\nA JSON status endpoint is also exposed via HTTP at :9292  \nProvided endpoints:\n- `/` - Overall status\n- `/\u003ckey fingerprint\u003e` - Status of specific key fp (must be a key present in `config.yml`)\n\n## Status\n\nBasic functionality (scheduled checks, http json api, matrix notifications) should be working. \n\nRoadmap: \n- [x] HTTP endpoint\n- [x] Matrix messages\n- [x] Pull keys and subkeys from keyserver\n- [x] Scheduled expiry checks\n- [ ] Configurable notification interval\n- [ ] Proper test coverage\n\n## Installation / Usage / Development\n\nClone the git repo, instantiate the bundle, configure and launch the server\n\n```sh\ngit clone https://github.com/coderobe/expirobot\ncd expirobot\nbundle install --path=vendor\ncp config.yml.example config.yml\n\n# Configure\nnano config.yml\n\nbundle exec rackup\n```\n\n## Docker\n\nBuild the image: \n```sh\ndocker build -t expirobot:latest .\n```\n\nCreate a configuration file: \n```sh\ncp config.yml.example config.yml\nnano config.yml\n```\n\nRun the container, mounting your config inside: \n```sh\ndocker run -v $PWD/config.yml:/app/config.yml --name expirobot expirobot:latest\n```\n\n## License\n\nThis project, initially authored by [coderobe](https://github.com/coderobe), is licensed under the terms of the GNU GPL version 3 or above.  \nA copy of the license text is available in `LICENSE`\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcoderobe%2Fexpirobot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcoderobe%2Fexpirobot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcoderobe%2Fexpirobot/lists"}