From 303baab54a06d02baa497f03aefeda052e88a397 Mon Sep 17 00:00:00 2001 From: Sebastian Kippe Date: Thu, 16 Feb 2017 12:49:04 +0800 Subject: [PATCH 01/13] Fix typo --- scripts/hubot-kredts.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/hubot-kredts.js b/scripts/hubot-kredts.js index c9954b4..e30505d 100644 --- a/scripts/hubot-kredts.js +++ b/scripts/hubot-kredts.js @@ -99,7 +99,7 @@ const fetch = require('node-fetch'); .then(issue => { // fs.writeFileSync('tmp/github-pr-issue.json', JSON.stringify(data, null, 4)); let amount = amountFromIssueLabels(issue); - if (amount === 0) { resolve(); return(); } + if (amount === 0) { resolve(); return; } recipients.forEach(recipient => { createProposal(recipient, amount, web_url, pull_request); From 63fd31fd06caa6779fafe1172fa24e28d94c9a89 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Greg=20Kar=C3=A9kinian?= Date: Tue, 14 Feb 2017 11:25:32 +0100 Subject: [PATCH 02/13] Don't load hubot-kredits for now --- hubot-scripts.json | 1 - 1 file changed, 1 deletion(-) diff --git a/hubot-scripts.json b/hubot-scripts.json index 6a181e8..0d4f101 100644 --- a/hubot-scripts.json +++ b/hubot-scripts.json @@ -1,3 +1,2 @@ [ - "hubot-kredits" ] From 048d087b68127ad7fc0793e1b000a8d06e11f1aa Mon Sep 17 00:00:00 2001 From: Sebastian Kippe Date: Tue, 2 May 2017 17:43:32 +0200 Subject: [PATCH 03/13] Add hubot-kredits npm module --- external-scripts.json | 3 ++- hubot-scripts.json | 2 -- package.json | 1 - 3 files changed, 2 insertions(+), 4 deletions(-) delete mode 100644 hubot-scripts.json diff --git a/external-scripts.json b/external-scripts.json index 6d666c9..a5e495e 100644 --- a/external-scripts.json +++ b/external-scripts.json @@ -10,5 +10,6 @@ "hubot-seen", "hubot-rss-reader", "hubot-incoming-webhook", - "hubot-yubikey-invalidation" + "hubot-yubikey-invalidation", + "hubot-kredits" ] diff --git a/hubot-scripts.json b/hubot-scripts.json deleted file mode 100644 index 0d4f101..0000000 --- a/hubot-scripts.json +++ /dev/null @@ -1,2 +0,0 @@ -[ -] diff --git a/package.json b/package.json index c4ac3dd..5c1bd1f 100644 --- a/package.json +++ b/package.json @@ -25,7 +25,6 @@ "hubot-shipit": "^0.2.0", "hubot-tell": "^1.2.3", "hubot-yubikey-invalidation": "0.0.3", - "node-fetch": "^1.6.3", "request": "2.30.0" }, "engines": { From ffb9b24c87819945c786c5a566c967ed3decc971 Mon Sep 17 00:00:00 2001 From: Sebastian Kippe Date: Tue, 2 May 2017 18:19:23 +0200 Subject: [PATCH 04/13] Add script commands for run.sh and ngrok proxy --- package.json | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/package.json b/package.json index 5c1bd1f..168fedf 100644 --- a/package.json +++ b/package.json @@ -2,6 +2,10 @@ "name": "hal8000", "version": "0.6.0", "private": true, + "scripts": { + "start": "./run.sh", + "ngrok": "ngrok http -region=ap -hostname=hubot-dev.kosmos.org localhost:8080" + }, "authors": [ "Sebastian Kippe ", "Greg Karékinian " From 9b189eaaa611dd2be114f0a20f88ab4617e4fd64 Mon Sep 17 00:00:00 2001 From: Sebastian Kippe Date: Tue, 2 May 2017 18:40:40 +0200 Subject: [PATCH 05/13] Update README Remove all the generated stuff and add actually useful information for this particular bot. --- README.md | 215 ++++-------------------------------------------------- 1 file changed, 13 insertions(+), 202 deletions(-) diff --git a/README.md b/README.md index 23538b7..3f0700d 100644 --- a/README.md +++ b/README.md @@ -1,219 +1,30 @@ # hal8000 -hal8000 is a chat bot built on the [Hubot][hubot] framework. It was -initially generated by [generator-hubot][generator-hubot], and configured to be -deployed on [Heroku][heroku] to get you up and running as quick as possible. +hal8000 is a chat bot built on the [Hubot](https://hubot.github.com/) +framework. It's currently running in some channels on Freenode. -This README is intended to help get you started. Definitely update and improve -to talk about your own instance, how to use and deploy, what functionality he -has, etc! +### Running hal8000 locally -[heroku]: http://www.heroku.com -[hubot]: http://hubot.github.com -[generator-hubot]: https://github.com/github/generator-hubot + npm start -### Running hal8000 Locally +### Incoming webhooks in development -You can test your hubot by running the following, however some plugins will not -behave as expected unless the [environment variables](#configuration) they rely -upon have been set. +With [ngrok](https://ngrok.com) installed (and the ngrok binary in your PATH), +you can open an HTTP tunnel with: -You can start hal8000 locally by running: - - % bin/hubot - -You'll see some start up output and a prompt: - - [Sat Feb 28 2015 12:38:27 GMT+0000 (GMT)] INFO Using default redis on localhost:6379 - hal8000> - -Then you can interact with hal8000 by typing `hal8000 help`. - - hal8000> hal8000 help - hal8000 animate me - The same thing as `image me`, except adds [snip] - hal8000 help - Displays all of the help commands that hal8000 knows about. - ... + npm run ngrok ### Configuration -A few scripts (including some installed by default) require environment -variables to be set as a simple form of configuration. - -Each script should have a commented header which contains a "Configuration" -section that explains which values it requires to be placed in which variable. -When you have lots of scripts installed this process can be quite labour -intensive. The following shell command can be used as a stop gap until an -easier way to do this has been implemented. - - grep -o 'hubot-[a-z0-9_-]\+' external-scripts.json | \ - xargs -n1 -i sh -c 'sed -n "/^# Configuration/,/^#$/ s/^/{} /p" \ - $(find node_modules/{}/ -name "*.coffee")' | \ - awk -F '#' '{ printf "%-25s %s\n", $1, $2 }' - -How to set environment variables will be specific to your operating system. -Rather than recreate the various methods and best practices in achieving this, -it's suggested that you search for a dedicated guide focused on your OS. - -### Scripting - -An example script is included at `scripts/example.coffee`, so check it out to -get started, along with the [Scripting Guide](scripting-docs). - -For many common tasks, there's a good chance someone has already one to do just -the thing. - -[scripting-docs]: https://github.com/github/hubot/blob/master/docs/scripting.md - -### external-scripts - -There will inevitably be functionality that everyone will want. Instead of -writing it yourself, you can use existing plugins. - -Hubot is able to load plugins from third-party `npm` packages. This is the -recommended way to add functionality to your hubot. You can get a list of -available hubot plugins on [npmjs.com](npmjs) or by using `npm search`: - - % npm search hubot-scripts panda - NAME DESCRIPTION AUTHOR DATE VERSION KEYWORDS - hubot-pandapanda a hubot script for panda responses =missu 2014-11-30 0.9.2 hubot hubot-scripts panda - ... - - -To use a package, check the package's documentation, but in general it is: - -1. Use `npm install --save` to add the package to `package.json` and install it -2. Add the package name to `external-scripts.json` as a double quoted string - -You can review `external-scripts.json` to see what is included by default. - -##### Advanced Usage - -It is also possible to define `external-scripts.json` as an object to -explicitly specify which scripts from a package should be included. The example -below, for example, will only activate two of the six available scripts inside -the `hubot-fun` plugin, but all four of those in `hubot-auto-deploy`. - -```json -{ - "hubot-fun": [ - "crazy", - "thanks" - ], - "hubot-auto-deploy": "*" -} -``` - -**Be aware that not all plugins support this usage and will typically fallback -to including all scripts.** - -[npmjs]: https://www.npmjs.com - -### hubot-scripts - -Before hubot plugin packages were adopted, most plugins were held in the -[hubot-scripts][hubot-scripts] package. Some of these plugins have yet to be -migrated to their own packages. They can still be used but the setup is a bit -different. - -To enable scripts from the hubot-scripts package, add the script name with -extension as a double quoted string to the `hubot-scripts.json` file in this -repo. - -[hubot-scripts]: https://github.com/github/hubot-scripts - -## Persistence - -If you are going to use the `hubot-redis-brain` package (strongly suggested), -you will need to add the Redis to Go addon on Heroku which requires a verified -account or you can create an account at [Redis to Go][redistogo] and manually -set the `REDISTOGO_URL` variable. - - % heroku config:add REDISTOGO_URL="..." - -If you don't need any persistence feel free to remove the `hubot-redis-brain` -from `external-scripts.json` and you don't need to worry about redis at all. - -[redistogo]: https://redistogo.com/ - -## Adapters - -Adapters are the interface to the service you want your hubot to run on, such -as Campfire or IRC. There are a number of third party adapters that the -community have contributed. Check [Hubot Adapters][hubot-adapters] for the -available ones. - -If you would like to run a non-Campfire or shell adapter you will need to add -the adapter package as a dependency to the `package.json` file in the -`dependencies` section. - -Once you've added the dependency with `npm install --save` to install it you -can then run hubot with the adapter. - - % bin/hubot -a - -Where `` is the name of your adapter without the `hubot-` prefix. - -[hubot-adapters]: https://github.com/github/hubot/blob/master/docs/adapters.md +`run.sh` (which is used for `npm start`) has some default values for the +required ENV vars. Change it according to your needs, or use custom ENV vars +with the commands. ## Deployment - % heroku create --stack cedar - % git push heroku master - -If your Heroku account has been verified you can run the following to enable -and add the Redis to Go addon to your app. - - % heroku addons:add redistogo:nano - -If you run into any problems, checkout Heroku's [docs][heroku-node-docs]. - -You'll need to edit the `Procfile` to set the name of your hubot. - -More detailed documentation can be found on the [deploying hubot onto -Heroku][deploy-heroku] wiki page. - -### Deploying to UNIX or Windows - -If you would like to deploy to either a UNIX operating system or Windows. -Please check out the [deploying hubot onto UNIX][deploy-unix] and [deploying -hubot onto Windows][deploy-windows] wiki pages. - -[heroku-node-docs]: http://devcenter.heroku.com/articles/node-js -[deploy-heroku]: https://github.com/github/hubot/blob/master/docs/deploying/heroku.md -[deploy-unix]: https://github.com/github/hubot/blob/master/docs/deploying/unix.md -[deploy-windows]: https://github.com/github/hubot/blob/master/docs/deploying/unix.md - -## Campfire Variables - -If you are using the Campfire adapter you will need to set some environment -variables. If not, refer to your adapter documentation for how to configure it, -links to the adapters can be found on [Hubot Adapters][hubot-adapters]. - -Create a separate Campfire user for your bot and get their token from the web -UI. - - % heroku config:add HUBOT_CAMPFIRE_TOKEN="..." - -Get the numeric IDs of the rooms you want the bot to join, comma delimited. If -you want the bot to connect to `https://mysubdomain.campfirenow.com/room/42` -and `https://mysubdomain.campfirenow.com/room/1024` then you'd add it like -this: - - % heroku config:add HUBOT_CAMPFIRE_ROOMS="42,1024" - -Add the subdomain hubot should connect to. If you web URL looks like -`http://mysubdomain.campfirenow.com` then you'd add it like this: - - % heroku config:add HUBOT_CAMPFIRE_ACCOUNT="mysubdomain" - -[hubot-adapters]: https://github.com/github/hubot/blob/master/docs/adapters.md - -## Restart the bot - -You may want to get comfortable with `heroku logs` and `heroku restart` if -you're having issues. +hal8000 is deployed by running Chef Solo against `dev.kosmos.org` with the +cookbooks from our (private) [GitLab repo](https://gitlab.com/kosmos/chef). ## House Rules [Contributor Code of Conduct](http://contributor-covenant.org/version/1/2/0/) (TL;DR: Be excellent to each other.) - From f0d58084b6be3e08de2015ec97e3cbd217cf7d00 Mon Sep 17 00:00:00 2001 From: Sebastian Kippe Date: Tue, 2 May 2017 18:43:52 +0200 Subject: [PATCH 06/13] Remove obsolete file --- Procfile | 1 - 1 file changed, 1 deletion(-) delete mode 100644 Procfile diff --git a/Procfile b/Procfile deleted file mode 100644 index ce1dc01..0000000 --- a/Procfile +++ /dev/null @@ -1 +0,0 @@ -web: bin/hubot -a irc From 4b86a351ff3e8ef282a0ec0e64568b4bcbd0fcf6 Mon Sep 17 00:00:00 2001 From: Michael Bumann Date: Fri, 5 May 2017 20:28:05 +0200 Subject: [PATCH 07/13] hacking on integrating real proposal creation --- external-scripts.json | 3 +-- package.json | 9 ++++++++- scripts/hubot-kredts.js | 41 +++++++++++++++++++++++++++++++++++++++-- 3 files changed, 48 insertions(+), 5 deletions(-) diff --git a/external-scripts.json b/external-scripts.json index a5e495e..6d666c9 100644 --- a/external-scripts.json +++ b/external-scripts.json @@ -10,6 +10,5 @@ "hubot-seen", "hubot-rss-reader", "hubot-incoming-webhook", - "hubot-yubikey-invalidation", - "hubot-kredits" + "hubot-yubikey-invalidation" ] diff --git a/package.json b/package.json index 168fedf..194310b 100644 --- a/package.json +++ b/package.json @@ -29,7 +29,14 @@ "hubot-shipit": "^0.2.0", "hubot-tell": "^1.2.3", "hubot-yubikey-invalidation": "0.0.3", - "request": "2.30.0" + "request": "2.30.0", + "node-fetch": "^1.6.3", + "request": "2.30.0", + "ethereumjs-wallet": "mvayngrib/ethereumjs-wallet", + "kredits-contracts": "67p/kredits-contracts", + "node-fetch": "^1.6.3", + "web3": "^0.18.4", + "web3-provider-engine": "^12.0.3" }, "engines": { "node": "6.x.x", diff --git a/scripts/hubot-kredts.js b/scripts/hubot-kredts.js index e30505d..fb86583 100644 --- a/scripts/hubot-kredts.js +++ b/scripts/hubot-kredts.js @@ -10,6 +10,39 @@ // const fs = require('fs'); const fetch = require('node-fetch'); +const kreditsContracts = require('kredits-contracts'); +const fs = require('fs'); +const ProviderEngine = require('web3-provider-engine'); +const Wallet = require('ethereumjs-wallet'); +const WalletSubprovider = require('ethereumjs-wallet/provider-engine'); +const Web3Subprovider = require('web3-provider-engine/subproviders/web3.js'); +const Web3 = require('web3'); + +let engine = new ProviderEngine(); + +let walletPath = process.env.KREDITS_WALLET_PATH || './wallet.json'; +let walletJson = fs.readFileSync(walletPath); +let wallet = Wallet.fromV3(JSON.parse(walletJson), process.env.KREDITS_WALLET_PASSWORD); +let providerUrl = process.env.KREDITS_PROVIDER_URL || 'http://localhost:8545'; +let hubotWalletAddress = '0x' + wallet.getAddress().toString('hex'); + +engine.addProvider(new WalletSubprovider(wallet, {})); +engine.addProvider(new Web3Subprovider(new Web3.providers.HttpProvider(providerUrl))); +engine.start(); + +let web3 = new Web3(engine); +web3.eth.defaultAccount = hubotWalletAddress; +let contracts = kreditsContracts(web3, {'Kredits': '0x722956CE1fB83dD88d3e56Cf446f9c7e34D1Fc52'}); +let Kredits = contracts['Kredits']; +let Token = contracts['Token']; + +console.log('[HUBOT-KREDITS] wallet address: ' + hubotWalletAddress); +web3.eth.getBalance('eee2de74de31d2e3ef24cb0f6959fd88b59267bd', function (err, balance) { + if (err) { console.log('[HUBOT-KREDITS] error checking balance'); return; } + if (!balance > 0) { + console.log('[HUBOT-KREDITS] Hubot is broke. Please sond some eth to ' + hubotWalletAddress); + } +}); (function() { "use strict"; @@ -44,8 +77,11 @@ const fetch = require('node-fetch'); // TODO write metaData to IPFS console.log(`Creating proposal to issue ${amount}₭S to ${recipient} for ${url}...`); - // robot.messageRoom(process.env.KREDITS_ROOM, message); - resolve(); + recipient = '0x74d05F57e14b16018938F60F78a4a687586A484d'; + Kredits.addProposal(address, amount, url, '', function (err, response) { + robot.messageRoom(process.env.KREDITS_ROOM, `new proposal: ${amount} for ${recipient} - https://kredits.kosmos.org`); + resolve(); + }); }); } @@ -125,3 +161,4 @@ const fetch = require('node-fetch'); }; }()); + From 9c26850621db0a55dbd7f52ed2b3f249642d30b8 Mon Sep 17 00:00:00 2001 From: Sebastian Kippe Date: Sat, 6 May 2017 15:36:22 +0200 Subject: [PATCH 08/13] Use module from npm instead of local script --- external-scripts.json | 3 +- package.json | 8 +- scripts/hubot-kredts.js | 164 ---------------------------------------- 3 files changed, 4 insertions(+), 171 deletions(-) delete mode 100644 scripts/hubot-kredts.js diff --git a/external-scripts.json b/external-scripts.json index 6d666c9..a5e495e 100644 --- a/external-scripts.json +++ b/external-scripts.json @@ -10,5 +10,6 @@ "hubot-seen", "hubot-rss-reader", "hubot-incoming-webhook", - "hubot-yubikey-invalidation" + "hubot-yubikey-invalidation", + "hubot-kredits" ] diff --git a/package.json b/package.json index 194310b..d2d0fb6 100644 --- a/package.json +++ b/package.json @@ -19,6 +19,7 @@ "hubot-help": "^0.1.1", "hubot-incoming-webhook": "^1.0.1", "hubot-irc": "^0.2.9", + "hubot-kredits": ">=1.1.0", "hubot-plusplus": "^1.1.5", "hubot-read-tweet": "0.0.2", "hubot-redis-brain": "0.0.2", @@ -29,14 +30,9 @@ "hubot-shipit": "^0.2.0", "hubot-tell": "^1.2.3", "hubot-yubikey-invalidation": "0.0.3", - "request": "2.30.0", - "node-fetch": "^1.6.3", - "request": "2.30.0", - "ethereumjs-wallet": "mvayngrib/ethereumjs-wallet", "kredits-contracts": "67p/kredits-contracts", "node-fetch": "^1.6.3", - "web3": "^0.18.4", - "web3-provider-engine": "^12.0.3" + "request": "2.30.0" }, "engines": { "node": "6.x.x", diff --git a/scripts/hubot-kredts.js b/scripts/hubot-kredts.js deleted file mode 100644 index fb86583..0000000 --- a/scripts/hubot-kredts.js +++ /dev/null @@ -1,164 +0,0 @@ -// Description: -// Kosmos Kredits chat integration -// -// Configuration: -// KREDITS_WEBHOOK_TOKEN: A string for building your secret webhook URL -// KREDITS_ROOM: Kredit proposals are posted to this chatroom -// -// Authors: -// Sebastian Kippe - -// const fs = require('fs'); -const fetch = require('node-fetch'); -const kreditsContracts = require('kredits-contracts'); -const fs = require('fs'); -const ProviderEngine = require('web3-provider-engine'); -const Wallet = require('ethereumjs-wallet'); -const WalletSubprovider = require('ethereumjs-wallet/provider-engine'); -const Web3Subprovider = require('web3-provider-engine/subproviders/web3.js'); -const Web3 = require('web3'); - -let engine = new ProviderEngine(); - -let walletPath = process.env.KREDITS_WALLET_PATH || './wallet.json'; -let walletJson = fs.readFileSync(walletPath); -let wallet = Wallet.fromV3(JSON.parse(walletJson), process.env.KREDITS_WALLET_PASSWORD); -let providerUrl = process.env.KREDITS_PROVIDER_URL || 'http://localhost:8545'; -let hubotWalletAddress = '0x' + wallet.getAddress().toString('hex'); - -engine.addProvider(new WalletSubprovider(wallet, {})); -engine.addProvider(new Web3Subprovider(new Web3.providers.HttpProvider(providerUrl))); -engine.start(); - -let web3 = new Web3(engine); -web3.eth.defaultAccount = hubotWalletAddress; -let contracts = kreditsContracts(web3, {'Kredits': '0x722956CE1fB83dD88d3e56Cf446f9c7e34D1Fc52'}); -let Kredits = contracts['Kredits']; -let Token = contracts['Token']; - -console.log('[HUBOT-KREDITS] wallet address: ' + hubotWalletAddress); -web3.eth.getBalance('eee2de74de31d2e3ef24cb0f6959fd88b59267bd', function (err, balance) { - if (err) { console.log('[HUBOT-KREDITS] error checking balance'); return; } - if (!balance > 0) { - console.log('[HUBOT-KREDITS] Hubot is broke. Please sond some eth to ' + hubotWalletAddress); - } -}); - -(function() { - "use strict"; - - module.exports = function(robot) { - - function amountFromIssueLabels(issue) { - let kreditsLabel = issue.labels.map(l => l.name) - .filter(n => n.match(/^kredits/))[0]; - // No label, no kredits - if (typeof kreditsLabel === 'undefined') { return 0; } - - // TODO move to config maybe? - let amount; - switch(kreditsLabel) { - case 'kredits-1': - amount = 50; - break; - case 'kredits-2': - amount = 150; - break; - case 'kredits-3': - amount = 500; - break; - } - - return amount; - } - - function createProposal(recipient, amount, url/*, metaData*/) { - return new Promise((resolve/*, reject*/) => { - // TODO write metaData to IPFS - console.log(`Creating proposal to issue ${amount}₭S to ${recipient} for ${url}...`); - - recipient = '0x74d05F57e14b16018938F60F78a4a687586A484d'; - Kredits.addProposal(address, amount, url, '', function (err, response) { - robot.messageRoom(process.env.KREDITS_ROOM, `new proposal: ${amount} for ${recipient} - https://kredits.kosmos.org`); - resolve(); - }); - }); - } - - function handleGitHubIssueClosed(data) { - return new Promise((resolve/*, reject*/) => { - // fs.writeFileSync('tmp/github-issue.json', JSON.stringify(data, null, 4)); - let recipients; - let issue = data.issue; - let assignees = issue.assignees.map(a => a.login); - let web_url = issue.html_url; - - let amount = amountFromIssueLabels(issue); - if (amount === 0) { resolve(); return; } - - if (assignees.length > 0) { - recipients = assignees; - } else { - recipients = [issue.user.login]; - } - - recipients.forEach(recipient => { - createProposal(recipient, amount, web_url, issue); - }); - - resolve(); - }); - } - - function handleGitHubPullRequestClosed(data) { - return new Promise((resolve, reject) => { - // fs.writeFileSync('tmp/github-pr.json', JSON.stringify(data, null, 4)); - let recipients; - let pull_request = data.pull_request; - let assignees = pull_request.assignees.map(a => a.login); - let web_url = pull_request._links.html.href; - let pr_issue_url = pull_request.issue_url; - - if (assignees.length > 0) { - recipients = assignees; - } else { - recipients = [pull_request.user.login]; - } - - fetch(pr_issue_url) - .then(response => { - if (response.status >= 400) { - reject('Bad response from fetching PR issue'); - } - return response.json(); - }) - .then(issue => { - // fs.writeFileSync('tmp/github-pr-issue.json', JSON.stringify(data, null, 4)); - let amount = amountFromIssueLabels(issue); - if (amount === 0) { resolve(); return; } - - recipients.forEach(recipient => { - createProposal(recipient, amount, web_url, pull_request); - }); - - resolve(); - }); - }); - } - - robot.router.post('/incoming/kredits/github/'+process.env.KREDITS_WEBHOOK_TOKEN, (req, res) => { - let evt = req.header('X-GitHub-Event'); - let data = req.body; - console.log(`Received GitHub hook. Event: ${evt}, action: ${data.action}`); - - if (evt === 'pull_request' && data.action === 'closed') { - handleGitHubPullRequestClosed(data).then(() => res.send(200)); - } - else if (evt === 'issues' && data.action === 'closed') { - handleGitHubIssueClosed(data).then(() => res.send(200)); - } - }); - - }; -}()); - From 89017fe6c089f773aa9e4f32418c396a43524cb7 Mon Sep 17 00:00:00 2001 From: Sebastian Kippe Date: Sat, 6 May 2017 15:41:39 +0200 Subject: [PATCH 09/13] Ignore wallet.json --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 3b8f584..be5df9d 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,4 @@ node_modules .DS_Store* .hubot_history /tmp +wallet.json From 4d804459ca32f8fe59ce14d8a814a82aa571baee Mon Sep 17 00:00:00 2001 From: Sebastian Kippe Date: Sat, 6 May 2017 18:59:58 +0200 Subject: [PATCH 10/13] Add ENV vars for hubot-kredits --- run.sh | 3 +++ 1 file changed, 3 insertions(+) diff --git a/run.sh b/run.sh index c14829e..d91e04e 100755 --- a/run.sh +++ b/run.sh @@ -15,4 +15,7 @@ LOG_STEALTH="true" \ WEBHOOK_TOKEN="kosmosplusplus" \ HUBOT_YUBIKEY_API_ID="change-me" \ KREDITS_WEBHOOK_TOKEN="123" \ +KREDITS_ROOM="#kosmos-dev" \ +KREDITS_WALLET_PATH="wallet.json" \ +KREDITS_WALLET_PASSWORD="foo" \ bin/hubot --name hal7000 From 45500083d28b826d4b543aead18bea1167c0aaee Mon Sep 17 00:00:00 2001 From: Sebastian Kippe Date: Sat, 6 May 2017 19:00:18 +0200 Subject: [PATCH 11/13] Use caret range for dep version --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index d2d0fb6..0cdbd56 100644 --- a/package.json +++ b/package.json @@ -19,7 +19,7 @@ "hubot-help": "^0.1.1", "hubot-incoming-webhook": "^1.0.1", "hubot-irc": "^0.2.9", - "hubot-kredits": ">=1.1.0", + "hubot-kredits": "^1.1.0", "hubot-plusplus": "^1.1.5", "hubot-read-tweet": "0.0.2", "hubot-redis-brain": "0.0.2", From 2767add93c1e1dc48c5424ee34c5284e7055dcfb Mon Sep 17 00:00:00 2001 From: Sebastian Kippe Date: Sat, 6 May 2017 22:11:34 +0200 Subject: [PATCH 12/13] kredits-contracts --- package.json | 4 ++-- run.sh | 2 ++ 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 0cdbd56..e71490c 100644 --- a/package.json +++ b/package.json @@ -4,7 +4,7 @@ "private": true, "scripts": { "start": "./run.sh", - "ngrok": "ngrok http -region=ap -hostname=hubot-dev.kosmos.org localhost:8080" + "ngrok": "ngrok http -region=ap -hostname=hubot-dev.kosmos.org localhost:8888" }, "authors": [ "Sebastian Kippe ", @@ -30,7 +30,7 @@ "hubot-shipit": "^0.2.0", "hubot-tell": "^1.2.3", "hubot-yubikey-invalidation": "0.0.3", - "kredits-contracts": "67p/kredits-contracts", + "kredits-contracts": "^2.0.0", "node-fetch": "^1.6.3", "request": "2.30.0" }, diff --git a/run.sh b/run.sh index d91e04e..6d66283 100755 --- a/run.sh +++ b/run.sh @@ -2,6 +2,7 @@ # rm -rf node_modules/hubot-openassets # npm install +PORT=8888 \ HUBOT_IRC_SERVER="irc.freenode.net" \ HUBOT_IRC_ROOMS="#kosmos-dev,#kosmos-random" \ HUBOT_IRC_NICK="hal7000" \ @@ -18,4 +19,5 @@ KREDITS_WEBHOOK_TOKEN="123" \ KREDITS_ROOM="#kosmos-dev" \ KREDITS_WALLET_PATH="wallet.json" \ KREDITS_WALLET_PASSWORD="foo" \ +KREDITS_CONTRACT_ADDRESS="0x1e77db134531f8e8f3d97428285d096b4b85e2c4" \ bin/hubot --name hal7000 From 5872c160a7eb03d76c15da67e3da6e2caa27d665 Mon Sep 17 00:00:00 2001 From: Sebastian Kippe Date: Thu, 11 May 2017 18:13:14 +0200 Subject: [PATCH 13/13] Update hubot-kredits --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index e71490c..af581bc 100644 --- a/package.json +++ b/package.json @@ -19,7 +19,7 @@ "hubot-help": "^0.1.1", "hubot-incoming-webhook": "^1.0.1", "hubot-irc": "^0.2.9", - "hubot-kredits": "^1.1.0", + "hubot-kredits": "^1.3.0", "hubot-plusplus": "^1.1.5", "hubot-read-tweet": "0.0.2", "hubot-redis-brain": "0.0.2",