{"id":16670342,"url":"https://github.com/ldilley/gwitter","last_synced_at":"2026-04-12T02:31:20.845Z","repository":{"id":73152310,"uuid":"128537254","full_name":"ldilley/gwitter","owner":"ldilley","description":":octocat: GitHub to Twitter hook glue","archived":false,"fork":false,"pushed_at":"2022-01-24T00:04:12.000Z","size":20,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-09-30T02:48:56.414Z","etag":null,"topics":["event","events","github","github-api","github-webhooks","json","json-parser","ruby","sinatra","ssl","ssl-support","twitter","twitter-api","webhook","webhook-server","webhook-service","webhooks","webhooks-catcher","webrick","yaml"],"latest_commit_sha":null,"homepage":"","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ldilley.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2018-04-07T14:40:28.000Z","updated_at":"2022-01-24T00:04:16.000Z","dependencies_parsed_at":null,"dependency_job_id":"cdb403f3-1998-450e-8e2e-12b2a5036c8a","html_url":"https://github.com/ldilley/gwitter","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ldilley/gwitter","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ldilley%2Fgwitter","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ldilley%2Fgwitter/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ldilley%2Fgwitter/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ldilley%2Fgwitter/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ldilley","download_url":"https://codeload.github.com/ldilley/gwitter/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ldilley%2Fgwitter/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31702577,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-11T21:17:31.016Z","status":"online","status_checked_at":"2026-04-12T02:00:06.763Z","response_time":58,"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":["event","events","github","github-api","github-webhooks","json","json-parser","ruby","sinatra","ssl","ssl-support","twitter","twitter-api","webhook","webhook-server","webhook-service","webhooks","webhooks-catcher","webrick","yaml"],"created_at":"2024-10-12T11:38:10.949Z","updated_at":"2026-04-12T02:31:20.834Z","avatar_url":"https://github.com/ldilley.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"gwitter\n=======\n[![License: GPL v3](https://img.shields.io/badge/License-GPL%20v3-blue.svg)](https://www.gnu.org/licenses/gpl-3.0)\n\nGitHub to Twitter hook glue\n\nGwitter is primarily being written for use with the [SEGS Project](https://github.com/Segs/Segs) for Twitter\nand Discord notifications. As such, only pull request/merge and release events are currently handled considering\nthe needs of the aforementioned project. You will need to manually handle other specific event types that you want\nposted to Twitter as a result. Support for more events will likely be added for posterity at some point. For a\nlist of available events supported by the GitHub API, please see the following:\n* https://developer.github.com/webhooks/#events\n* https://developer.github.com/v3/activity/events/types/\n\nGwitter requires the use of Twitter consumer and access tokens for authentication and authorization. These can\nbe procured after creating a Twitter application at: https://apps.twitter.com/\n\nFor added security, you can optionally:\n* Permit traffic on your firewall for just the hook networks referenced here: https://api.github.com/meta\n\n* Generate a GitHub hook secret for validation using:\n\n`ruby -rsecurerandom -e 'puts SecureRandom.hex(20)'`\n\n* Make use of SSL certificates which can be generated using Let's Encrypt or another CA. You may also generate\nself-signed certificates using:\n\n`openssl req -x509 -nodes -newkey rsa:2048 -keyout server.key -out server.crt -days 365`\n\nNote: If you are utilizing self-signed certificates, you must disable SSL verification for the GitHub hook.\n\nGwitter has the following requirements:\n\n* Ruby (including [JRuby](http://jruby.org/)) \u003e=2.2\n* [Sinatra Gem](https://github.com/sinatra/sinatra)\n* [Twitter Gem](https://github.com/sferik/twitter)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fldilley%2Fgwitter","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fldilley%2Fgwitter","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fldilley%2Fgwitter/lists"}