{"id":16057449,"url":"https://github.com/aduth/ghat","last_synced_at":"2025-03-17T21:31:12.674Z","repository":{"id":24865969,"uuid":"28281541","full_name":"aduth/Ghat","owner":"aduth","description":"Relay GitHub events to your favorite chat client","archived":false,"fork":false,"pushed_at":"2019-02-11T16:30:23.000Z","size":1510,"stargazers_count":4,"open_issues_count":3,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-13T22:35:06.446Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"JavaScript","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/aduth.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2014-12-20T22:48:24.000Z","updated_at":"2019-02-11T16:30:25.000Z","dependencies_parsed_at":"2022-08-23T09:10:47.096Z","dependency_job_id":null,"html_url":"https://github.com/aduth/Ghat","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aduth%2FGhat","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aduth%2FGhat/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aduth%2FGhat/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aduth%2FGhat/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/aduth","download_url":"https://codeload.github.com/aduth/Ghat/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243885934,"owners_count":20363644,"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-09T03:02:29.533Z","updated_at":"2025-03-17T21:31:12.099Z","avatar_url":"https://github.com/aduth.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"![Ghat](./public/images/logo.png)\n\n[![Build Status](https://travis-ci.org/aduth/Ghat.svg?branch=master)](https://travis-ci.org/aduth/Ghat)\n\nGhat sends messages to your favorite chat service when actions are taken at a GitHub repository, helping you to keep up-to-date with the latest events. A variety of chat services are supported, and filtering options allow you to selectively choose which types of messages are sent.\n\nCurrently, the following chat services are supported:\n\n- [Slack](https://slack.com/)\n- [Gitter](https://gitter.im)\n\n## Try it now!\n\nTo host your own instance, easily deploy to your Heroku account using the button below:\n\n[![Deploy](https://www.herokucdn.com/deploy/button.svg)](https://heroku.com/deploy?template=https://github.com/aduth/ghat)\n\n## Development\n\nBefore starting, the following will need to be installed and available:\n\n- [Node.js](http://nodejs.org/)\n- [MongoDB](http://www.mongodb.org/)\n\nAfter cloning the repository, install Node and Bower dependencies using `npm install`. Before running the web server, create the first build by running `npm build`. Finally, start the web server with `npm start`.\n\nThe entire process is illustrated below:\n\n```bash\n$ git clone https://github.com/aduth/Ghat.git\n$ cd Ghat\n$ npm install\n$ npm build\n$ npm start\n```\n\nThe following environment variables are used, and can be specified by creating a `.env` file in the root directory.\n\n- `NODE_ENV`: The running mode of the environment: `production` or `development` (default: `development`)\n- `ORIGIN`: The root URL of your hosted application (default: `http://localhost:3000`)\n- `PORT`: The port on which the application runs (default: `3000`)\n- `HOMEBASE`: Boolean indicating whether application should display with official branding (default: `false`)\n- `MONGODB_URI`: URI to the running instance of MongoDB (default: `mongodb://localhost/ghat`)\n- `CHAT_USERNAME`: The username of the chat bot (default: `Ghat Bot`)\n- `GITHUB_CLIENT_ID`: The client ID for your registered GitHub application (required)\n- `GITHUB_CLIENT_SECRET`: The client secret for your registered GitHub application (required)\n- `SLACK_CLIENT_ID`: The client ID for your registered Slack application (required)\n- `SLACK_CLIENT_SECRET`: The client secret for your registered Slack application (required)\n- `GITTER_CLIENT_ID`: The client ID for your registered Gitter application (required)\n- `GITTER_CLIENT_SECRET`: The client secret for your registered Gitter application (required)\n\nThe following npm scripts are available:\n\n- `npm run build`: Builds stylesheet and JavaScript source files and moves vendor assets to public directory\n- `npm run dev`: Executes the build task, then watches files for changes, triggering a build on change\n- `npm run start`: Starts the web server, listening on the port defined by the `PORT` environment variable\n- `npm run test`: Runs Mocha test suite\n\nMore specific [Gulp](http://gulpjs.com/) build tasks are defined tasks in [gulpfile.js](./gulpfile.js).\n\n## Security\n\nSince account access is granted through Ghat, security is a very important consideration. The following decisions have been made to limit the amount of access needed by the application:\n\n- GitHub webhooks can be managed manually without granting access to your account\n- Ghat uses the more-permissive `repo` GitHub API scope instead of `write:repo_hook` because otherwise it's not possible to create webhooks for private repositories.\n- GitHub tokens are only ever available as plain-text in the client browser. When saving an integration, GitHub tokens are stored as a non-readable [bcrypt hash](http://en.wikipedia.org/wiki/Bcrypt) to be used in future verification for managing existing integrations.\n- Slack tokens are scoped to the minimum required capabilities, which excludes the ability to read messages from your Slack channels\n\nIf you still have concerns, it's very easy to host your own private instance of Ghat by clicking the Heroku Deploy button above.\n\n## License\n\nThe MIT License (MIT)\n\nCopyright (c) 2015 Andrew Duthie\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faduth%2Fghat","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faduth%2Fghat","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faduth%2Fghat/lists"}