{"_id":"clabot","_rev":"53-3da89b2f4bce743941349af54bbe94a1","name":"clabot","description":"A bot to take the pain out of Contributor License Agreements","dist-tags":{"latest":"0.1.0"},"versions":{"0.0.1":{"name":"clabot","description":"A bot to take the pain out of Contributor License Agreements","version":"0.0.1","homepage":"https://github.com/clabot/clabot","author":{"name":"Stephan Bönnemann","email":"clabot@excellenteasy.com","url":"http://excellenteasy.com"},"repository":{"type":"git","url":"git://github.com/clabot/clabot.git"},"bugs":{"url":"https://github.com/clabot/clabot/issues"},"licenses":[{"type":"MIT","url":"https://github.com/clabot/clabot/blob/master/LICENSE-MIT"}],"main":"src/clabot.js","engines":{"node":">= 0.8.0"},"scripts":{"test":"./node_modules/grunt-cli/bin/grunt test","postinstall":"./node_modules/grunt-cli/bin/grunt coffee"},"dependencies":{"github":"0.1.8","grunt-cli":"0.1.6","lodash":"~1.0.1","express":"~3.1.0","qs":"~0.5.4"},"devDependencies":{"grunt":"~0.4.0","grunt-contrib-coffee":"~0.6.2","grunt-contrib-nodeunit":"~0.1.2"},"peerDependencies":{"grunt":"~0.4.0"},"keywords":["CLA","License","Contribution","Bot","GitHub"],"_id":"clabot@0.0.1","dist":{"shasum":"0f1fc26edcb866d3f3fd5262fc80a2bf145f4dd4","tarball":"https://registry.npmjs.org/clabot/-/clabot-0.0.1.tgz","integrity":"sha512-aRY1CcGzYb1DDplTK7r81OKvH/74AdLKvXKbV+PVxFmWfX6sOhuENbMfHkF7alZJWgcpu/oBu2sJ0YJu88yYzg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCI1S89O/Blx2arrAAw78J3ouPm7oGeZMWkZUSAFModHAIgZxS7yZIlUoGRNrfSc8AYnMfmwjTaWEjes6ikZr/pYmU="}]},"_from":".","_npmVersion":"1.2.14","_npmUser":{"name":"boennemann","email":"stephan@boennemann.me"},"maintainers":[{"name":"boennemann","email":"stephan@boennemann.me"}],"directories":{}},"0.0.2":{"name":"clabot","description":"A bot to take the pain out of Contributor License Agreements","version":"0.0.2","homepage":"https://github.com/clabot/clabot","author":{"name":"Stephan Bönnemann","email":"clabot@excellenteasy.com","url":"http://excellenteasy.com"},"repository":{"type":"git","url":"git://github.com/clabot/clabot.git"},"bugs":{"url":"https://github.com/clabot/clabot/issues"},"licenses":[{"type":"MIT","url":"https://github.com/clabot/clabot/blob/master/LICENSE"}],"main":"src/clabot.js","engines":{"node":">= 0.8.0"},"scripts":{"test":"./node_modules/grunt-cli/bin/grunt test","prebulish":"./node_modules/grunt-cli/bin/grunt coffee"},"dependencies":{"github":"0.1.8","lodash":"~1.0.1","express":"~3.1.0","qs":"~0.5.4"},"devDependencies":{"grunt":"~0.4.0","grunt-cli":"0.1.6","grunt-contrib-coffee":"~0.6.2","grunt-contrib-nodeunit":"~0.1.2"},"peerDependencies":{"grunt":"~0.4.0"},"keywords":["CLA","License","Contribution","Bot","GitHub"],"_id":"clabot@0.0.2","dist":{"shasum":"fa276e9db963f17266881af18a55a4a9d71f28d9","tarball":"https://registry.npmjs.org/clabot/-/clabot-0.0.2.tgz","integrity":"sha512-dZ+ocNVCwg8jz2fFsdRmYRq+GB2aGyR1/8dH7ydx+pFsMjvj28xDsbMYYhtfXwD3Sqx6LP6kBxY7BvDFe6Y3mA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCDscXzM2mnMj/lheUnlFVvekPvUAyZEbJZLT0hq6DqXwIgB0VUBxMK3F81ABgKHuLpoTXScrMfdl5qv+l/EUkukHI="}]},"_from":".","_npmVersion":"1.2.14","_npmUser":{"name":"boennemann","email":"stephan@boennemann.me"},"maintainers":[{"name":"boennemann","email":"stephan@boennemann.me"}],"directories":{}},"0.0.3":{"name":"clabot","description":"A bot to take the pain out of Contributor License Agreements","version":"0.0.3","homepage":"https://github.com/clabot/clabot","author":{"name":"Stephan Bönnemann","email":"clabot@excellenteasy.com","url":"http://excellenteasy.com"},"repository":{"type":"git","url":"git://github.com/clabot/clabot.git"},"bugs":{"url":"https://github.com/clabot/clabot/issues"},"licenses":[{"type":"MIT","url":"https://github.com/clabot/clabot/blob/master/LICENSE"}],"main":"src/clabot.js","engines":{"node":">= 0.8.0"},"scripts":{"test":"./node_modules/grunt-cli/bin/grunt test","prepublish":"./node_modules/grunt-cli/bin/grunt coffee"},"dependencies":{"github":"0.1.8","lodash":"~1.0.1","express":"~3.1.0","qs":"~0.5.4"},"devDependencies":{"grunt":"~0.4.0","grunt-cli":"0.1.6","grunt-contrib-coffee":"~0.6.2","grunt-contrib-nodeunit":"~0.1.2"},"peerDependencies":{"grunt":"~0.4.0"},"keywords":["CLA","License","Contribution","Bot","GitHub"],"_id":"clabot@0.0.3","dist":{"shasum":"2d6f5c9203e2e211f320303b5f68fbfcf25eedc8","tarball":"https://registry.npmjs.org/clabot/-/clabot-0.0.3.tgz","integrity":"sha512-im0euDjIAtEuqMCIAy3OYR9dMySDN1nOf29zCXTJaUQbakPgyv+c4yY76kgi4Af+WJialrbrTzPbyGTpmVa1Bw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICZS2GUL9/58TACVIKFcVEYKQTWy1Uj0+hB3P9NcesCkAiEA9+bgATHCLZxHgPK6lmN6KMS6dT6X2X4TRxBlG2FVOFE="}]},"_from":".","_npmVersion":"1.2.14","_npmUser":{"name":"boennemann","email":"stephan@boennemann.me"},"maintainers":[{"name":"boennemann","email":"stephan@boennemann.me"}],"directories":{}},"0.0.4":{"name":"clabot","description":"A bot to take the pain out of Contributor License Agreements","version":"0.0.4","homepage":"https://github.com/clabot/clabot","author":{"name":"Stephan Bönnemann","email":"clabot@excellenteasy.com","url":"http://excellenteasy.com"},"repository":{"type":"git","url":"git://github.com/clabot/clabot.git"},"bugs":{"url":"https://github.com/clabot/clabot/issues"},"licenses":[{"type":"MIT","url":"https://github.com/clabot/clabot/blob/master/LICENSE"}],"main":"src/clabot.js","engines":{"node":">= 0.8.0"},"scripts":{"test":"./node_modules/grunt-cli/bin/grunt test","prepublish":"./node_modules/grunt-cli/bin/grunt coffee"},"dependencies":{"github":"0.1.8","lodash":"~1.0.1","express":"~3.1.0","qs":"~0.5.4"},"devDependencies":{"grunt":"~0.4.0","grunt-cli":"0.1.6","grunt-contrib-coffee":"~0.6.2","grunt-contrib-nodeunit":"~0.1.2","grunt-contrib-watch":"~0.3.1"},"peerDependencies":{"grunt":"~0.4.0"},"keywords":["CLA","License","Contribution","Bot","GitHub"],"_id":"clabot@0.0.4","dist":{"shasum":"3550f633c990fb85ec3984ac29d9d6d52150713b","tarball":"https://registry.npmjs.org/clabot/-/clabot-0.0.4.tgz","integrity":"sha512-N7HFePY8pqyKwRrowNYAKfc5jcVIJRAJmZR8Oonxnzr/GwtF1ch2x3F0WW2hMIW4nxm7hrI4yDlODrilOXQvbg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGKMkevX+2YcQzlbVB+yWbS6ahKwq++4gojz3tTGqEgUAiEAuSZe9UmmtSKJxxJPSP9bnXdQP1ON7y0DR4l+hnUIM3k="}]},"_from":".","_npmVersion":"1.2.14","_npmUser":{"name":"boennemann","email":"stephan@boennemann.me"},"maintainers":[{"name":"boennemann","email":"stephan@boennemann.me"}]},"0.0.5":{"name":"clabot","description":"A bot to take the pain out of Contributor License Agreements","version":"0.0.5","homepage":"https://github.com/clabot/clabot","author":{"name":"Stephan Bönnemann","email":"clabot@excellenteasy.com","url":"http://excellenteasy.com"},"repository":{"type":"git","url":"git://github.com/clabot/clabot.git"},"bugs":{"url":"https://github.com/clabot/clabot/issues"},"licenses":[{"type":"MIT","url":"https://github.com/clabot/clabot/blob/master/LICENSE"}],"main":"src/clabot.js","engines":{"node":">= 0.8.0"},"scripts":{"test":"./node_modules/grunt-cli/bin/grunt test","prepublish":"./node_modules/grunt-cli/bin/grunt coffee"},"dependencies":{"github":"~0.1.13","lodash":"~2.4.1","express":"~3.4.8","qs":"~0.6.6"},"devDependencies":{"grunt":"~0.4.2","grunt-cli":"~0.1.13","grunt-contrib-coffee":"~0.10.0","grunt-contrib-nodeunit":"~0.3.0","grunt-contrib-watch":"~0.5.3"},"peerDependencies":{"grunt":"~0.4.2"},"keywords":["CLA","License","Contribution","Bot","GitHub"],"_id":"clabot@0.0.5","dist":{"shasum":"c89d8d84ddec68f15d5e51b6e0a59afd9175dab8","tarball":"https://registry.npmjs.org/clabot/-/clabot-0.0.5.tgz","integrity":"sha512-ZGtjQb8Etr4SpNvXdTio0ZcYKbSs8bP0ZpULi8Q75K0pgN2hJKqUbtM2Lp1gARogytDnIFJBSR5S/i302yNPPw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIF+54EPHi7CBMXwJtXzYXBfWpetq6H2TtZsYuPNJEqH5AiAF7MhTyC7/VK16rCtpN4OTXxjQkBiYv+BV+fLoVz4Dcw=="}]},"_from":".","_npmVersion":"1.3.14","_npmUser":{"name":"excellenteasy","email":"info@excellenteasy.com"},"maintainers":[{"name":"boennemann","email":"stephan@boennemann.me"},{"name":"excellenteasy","email":"info@excellenteasy.com"}]},"0.1.0":{"name":"clabot","description":"A bot to take the pain out of Contributor License Agreements","version":"0.1.0","homepage":"https://github.com/clabot/clabot","author":{"name":"Stephan Bönnemann","email":"clabot@excellenteasy.com","url":"http://excellenteasy.com"},"repository":{"type":"git","url":"git://github.com/clabot/clabot.git"},"bugs":{"url":"https://github.com/clabot/clabot/issues"},"licenses":[{"type":"MIT","url":"https://github.com/clabot/clabot/blob/master/LICENSE"}],"main":"src/clabot.js","engines":{"node":">= 0.8.0"},"scripts":{"test":"./node_modules/grunt-cli/bin/grunt test","prepublish":"./node_modules/grunt-cli/bin/grunt coffee"},"dependencies":{"github":"~0.1.13","lodash":"~2.4.1","express":"~3.4.8","qs":"~1.2.1"},"devDependencies":{"grunt":"~0.4.2","grunt-cli":"~0.1.13","grunt-contrib-coffee":"~0.10.0","grunt-contrib-nodeunit":"~0.3.0","grunt-contrib-watch":"~0.5.3"},"peerDependencies":{"grunt":"~0.4.2"},"keywords":["CLA","License","Contribution","Bot","GitHub"],"gitHead":"fd96bfff226f5367efca34ad71d45ee741e029fa","_id":"clabot@0.1.0","_shasum":"cc35cd30d707a785d55eb7cb6ecba8bb3d7973f0","_from":".","_npmVersion":"2.1.3","_nodeVersion":"0.10.32","_npmUser":{"name":"boennemann","email":"stephan@boennemann.me"},"maintainers":[{"name":"boennemann","email":"stephan@boennemann.me"},{"name":"excellenteasy","email":"info@excellenteasy.com"}],"dist":{"shasum":"cc35cd30d707a785d55eb7cb6ecba8bb3d7973f0","tarball":"https://registry.npmjs.org/clabot/-/clabot-0.1.0.tgz","integrity":"sha512-FSFE4Q4KkRl/mJn5Z3V7Rl4ZBFTzIYr6HwpTBIq5XAbSqhXbRipFs3kCjU2L6t5l8UmwDm1jm5Uu5REqD0BywA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCzrTcNccKsbvzdOTc0auENs8Ior/uR3pss0ENl9UHYbwIgHWEeGKKZnnVSyC8dVfUN+qVdLZ9wwFIdESXFS9zDTdI="}]}}},"readme":"# clabot [![Build Status](https://travis-ci.org/clabot/clabot.png?branch=master)](https://travis-ci.org/clabot/clabot)\n\n![clabot](http://en.gravatar.com/userimage/20257526/bb65aa5c4ec93b91c4a2c620d2181d3d.png?size=256)\n\nclabot **automatically checks Pull Requests** submitted to your repository.\n\nIf the sender hasn't signed the **C**ontributor **L**icense **A**greement, he **comments with instructions**, otherwise the maintainer will be notified.\n\n*[What a CLA is and why you need one](http://en.wikipedia.org/wiki/Contributor_License_Agreement)*\n\n![post fancy gifs like it's 1995](http://i.imgur.com/x9ovPJ7.gif)\n\n**The bot is fully customizeable:**\n* Hook any API into the `getContractors` mechanism.\n* Provide templates to adapt clabot's comments to your needs\n* Flags to ignore pull requests from collaborators or people who have already contributed\n\nYou can even trigger clabot manually with a **special comment API**. Reply with `[clabot:check]` to any pull request and you'll instantly see wether the sender has signed or not.\n\nThis dramatically **reduces the time investement** needed to establish a strict contribution policy for your projects.\n\n**The focus of this project lies on communication automation:**\n* No more painful begging for replies\n* No more hours of processing the pull request queue\n* No more manually checking the contractor database\n\nThe bot is written in coffeescript, running on node.js. Due to [pubsubhubhub](http://developer.github.com/v3/repos/hooks/#pubsubhubbub) and GitHub's live updates answers will appear almost instantly.\n\n## Try it out\n\nFeel free to open pull requests in our [sandbox](http://github.com/clabot/sandbox) environment.\nExperience how clabot automatically responds, guiding you through the process of signing a Contributors License Agreement.\n*Note:* If you don't want to go through the hassle of forking the repo just reply `[clabot:check]` to any of the pull requests.\nYou can use `[clabot:check=yourusername]` to check your own status.\n\n## Getting Your Own\n\n**You'll probably never have to hack on this repo directly.**\n\nInstead this repo provides a library that's distributed by npm that you simply require in your project.\n\nWe have set up a [sample implementation](http://github.com/clabot/sample). Look at the code there or fork our [boilerplate](http://github.com/clabot/boilerplate) and follow the [tutorial](https://github.com/clabot/boilerplate/blob/master/README.md).\n\n## Documentation\n\nclabot is available on the npm registry.\n```bash\nnpm install clabot\n```\n\nYou require clabot and call `clabot.createApp(options)`. This will return a new [express.js](http://expressjs.com) app.\nBased on the options provided this already sets up some clabot specific routes and middlewares.\n\nAll you have to do is listen to a port and clabot will be up and running.\n\n```js\napp = require('clabot').createApp(options);\napp.listen(process.env.PORT || 1337);\n```\n\nIf your app requires middleware to be added before clabot's middleware, you can pass in an Express app for clabot to use instead of creating a new one.\n\n```js\noptions.app = express();\n// add some middleware here\napp = require('clabot').createApp(options);\napp.listen(process.env.PORT || 1337);\n```\n\nIn order to receive events from GitHub you have to subscribe.\nclabot will never push code to the repositories, but push access is required to be able to receive events from the GitHub API.\n\n```bash\ncurl -u \"clabotusername\" -i https://api.github.com/hub -F \"hub.mode=subscribe\" -F \"hub.topic=https://github.com/:user/:repo/events/pull_request\" -F \"hub.callback=http://your-clabot.herokuapp.com/notify\" -F \"hub.secret=supersecretrandomstring\"\n\ncurl -u \"clabotusername\" -i https://api.github.com/hub -F \"hub.mode=subscribe\" -F \"hub.topic=https://github.com/:user/:repo/events/issue_comment\" -F \"hub.callback=http://your-clabot.herokuapp.com/notify\" -F \"hub.secret=supersecretrandomstring\"\n```\n\n*Note:* You have to do both of the commands for every repository that should be observed. One command for pull requests and one for comments on those.\n\n[http://developer.github.com/v3/repos/hooks/#pubsubhubbub](http://developer.github.com/v3/repos/hooks/#pubsubhubbub)\n\n\n### Options\n\n#### getContractors(callback)\n\nType: `Function`\n\n*required*\n\nThis function will be called by clabot in case he needs a list of all signed contractors.\nProvide a function here that queries your database and calls the callback with an array of GitHub usernames.\n\n#### addContractor(contractor, callback)\n\nType: `Function`\n\n*optional*\n\nThis function will be called by clabot in case he needs to add a contractor to the list of signed contractors.\nProvide a function here that adds a contractor to your database and calls the callback with a boolean success flag.\n\n#### token\n\nType: `String`\n\n*required*\n\nA valid GitHub oAuth token with access to all repositories that clabot should observe.\n\n*Note:* It's highly recommended that you **don't commit the token to your repository**. Use environment variables.\n\n*Note:* It's highly recommended that you **create a sperate GitHub account for your clabot**.\n\n```bash\ncurl -u 'clabotusername' -d '{\"scopes\":[\"repo\"],\"note\":\"clabot\"}' https://api.github.com/authorizations\n```\n[Creating an OAuth token for command-line use](https://help.github.com/articles/creating-an-oauth-token-for-command-line-use)\n\n\n#### templates\n\nType: `Object`\n\n*optional*\n\nclabot provides pretty cool standard templates, but if they don't fit your needs you can specify custom ones.\nThe object may specify: `alreadySigned` and `notYetSigned`. You should have a look at the [originals](src/templates).\n*Note:* Templates are processed by [lodash's](http://lodash.com) `_.template`\n\n#### templateData\n\nType: `Object`\n\nSpecify details displayed in clabot's answers. You may specify any data you like, so you can access it in your custom templates\n.\n* \"image\": 'Boolean' show funny gifs in the response\n* \"link\": 'String' link to your electronical submission form\n* \"maintainer\": 'String' GitHub username to be notified, if CLA was signed\n\n#### secrets\n\nType: `Object`\n\n*required*\n\nThe secrets you provided when subscribing to GitHub's events. Organized in a user/repo way so you can vary secrets on a per repo basis.\n\n```js\nsecrets: {\n  username:\n    reponame: 'secret1'\n    reponame2: 'secret2'\n}\n```\n*Note:* It's highly recommended that you **don't commit secrets to your repository**. Use environment variables.\n\n#### skipCollaborators\n\nType: `Boolean`\n\nDefault: false\n\nDon't answer to pull request from people with push access to the repository.\n\n#### skipContributors\n\nType: `Boolean`\n\nDefault: true\n\nDon't answer to pull request from people who have already contributed to the repository.\n\n## Misc & Attributions\n\n**Don't know what the whole CLA thing is about?**\n\n> The purpose of a CLA is to ensure that the guardian of a project's outputs has the necessary ownership or grants of rights over all contributions to allow them to distribute under the chosen licence.\n[Wikipedia](http://en.wikipedia.org/wiki/Contributor_License_Agreement)\n\n**Need a Contributor License Agreement template?**\n\n> Project Harmony is a community-centered group focused on contributor agreements for free and open source software (FOSS) [Project Harmony](http://www.harmonyagreements.org/index.html)\n\n**Wanna hang out and chat about clabot?**\n\n[Join our HipChat room](https://www.hipchat.com/gBZFBJa2w)\n\n**clabot is [MIT licensed](LICENSE). In case you forgot about the most important part of it:**\n\n> THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n> EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES\n> OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n> NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\n> HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,\n> WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n> FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\n> OTHER DEALINGS IN THE SOFTWARE.\n\nWe aren't lawyers, and none of the clabot documentation, functionality, or other communication constitutes legal advice. Consult your lawyer about a Contributor License Agreement.\n\n<hr />\n\nauthored by **[Stephan Bönnemann](https://github.com/boennemann) - [@boennemann](https://twitter.com/boennemann)**\n\nmaintained by [excellenteasy](https://github.com/excellenteasy)\n\nclabot logo by [Proycontec SL.](http://www.proycontec.es/proycontec-3-iconos-gratis-index-es.html) - [Creative Commons Attribution-Share Alike 3.0](http://creativecommons.org/licenses/by-sa/3.0/us/)\n","maintainers":[{"name":"boennemann","email":"stephan@boennemann.me"},{"name":"excellenteasy","email":"info@excellenteasy.com"}],"time":{"modified":"2022-06-13T06:04:54.252Z","created":"2013-03-19T18:03:02.993Z","0.0.1":"2013-03-19T18:03:30.125Z","0.0.2":"2013-03-19T18:42:21.158Z","0.0.3":"2013-03-19T18:49:17.146Z","0.0.4-a1":"2013-03-20T08:30:08.684Z","0.0.4-a2":"2013-03-20T15:34:57.050Z","0.0.4-a3":"2013-03-20T16:05:05.899Z","0.0.4-a4":"2013-03-20T17:14:26.816Z","0.0.4-a5":"2013-03-20T17:23:19.949Z","0.0.4-a6":"2013-03-20T17:33:08.269Z","0.0.4-a7":"2013-03-20T17:38:37.699Z","0.0.4-a8":"2013-03-20T19:38:30.987Z","0.0.4-a9":"2013-03-20T20:41:46.947Z","0.0.4":"2013-03-20T23:28:31.639Z","0.0.5":"2014-02-11T14:44:38.154Z","0.1.0":"2014-10-22T20:38:26.516Z"},"author":{"name":"Stephan Bönnemann","email":"clabot@excellenteasy.com","url":"http://excellenteasy.com"},"repository":{"type":"git","url":"git://github.com/clabot/clabot.git"},"readmeFilename":"README.md","homepage":"https://github.com/clabot/clabot","keywords":["CLA","License","Contribution","Bot","GitHub"],"bugs":{"url":"https://github.com/clabot/clabot/issues"}}