{"_id":"@atomist/automation-seed","_rev":"43-dc3764c3d67a883e0df0a08431654f33","name":"@atomist/automation-seed","description":"Atomist automation client seed project","dist-tags":{"latest":"0.12.0","branch-master":"0.12.1-master.20180903023406"},"versions":{"0.2.0":{"name":"@atomist/automation-seed","version":"0.2.0","description":"Atomist automation seed project","author":{"name":"Atomist"},"license":"Apache-2.0","repository":{"type":"git","url":"git+https://github.com/atomist/automation-seed-ts.git"},"homepage":"https://github.com/atomist/automation-seed-ts#readme","bugs":{"url":"https://github.com/atomist/automation-seed-ts/issues"},"keywords":["atomist","automation","seed"],"dependencies":{"@atomist/automation-client":"^0.3.5","app-root-path":"^2.0.1"},"devDependencies":{"@types/app-root-path":"^1.2.4","@types/mocha":"^2.2.41","@types/node":"^8.0.46","@types/power-assert":"^1.4.29","espower-typescript":"^8.0.2","graphql-code-generator":"^0.8.13","mocha":"^3.5.3","npm-run-all":"^4.1.1","power-assert":"^1.4.4","rimraf":"^2.6.2","supervisor":"^0.12.0","ts-node":"^3.3.0","tslint":"^5.4.3","typedoc":"^0.8.0","typescript":"^2.5.3","typescript-formatter":"^6.0.0"},"directories":{"test":"test"},"scripts":{"autostart":"npm-run-all --print-label --parallel watch:compile watch","autotest":"supervisor --watch src,test --extensions ts --no-restart-on exit --quiet --exec npm -- test","build":"npm-run-all lint compile test","clean":"npm-run-all clean:js clean:build","clean:build":"rimraf *-v8.log profile.txt build","clean:dist":"npm-run-all clean clean:npm","clean:js":"rimraf '{src,test}/**/*.js'","clean:npm":"rimraf node_modules","compile":"npm-run-all git:info gql:gen compile:ts","compile:gql":"copyfiles './src/**/*.graphql' ./build","compile:ts":"tsc --project .","fmt":"tsfmt --replace","git:info":"atomist git","gql:gen":"gql-gen --file node_modules/@atomist/automation-client/graph/schema.cortex.json --template typescript -m --out src/typings 'graphql/**/*.graphql'","lint":"tslint --format verbose --project . --exclude '{build,node_modules}/**' '**/*.ts'","lint:fix":"npm run lint -- --fix","start":"atomist start","test":"mocha --require espower-typescript/guess 'test/**/*.ts'","test:one":"mocha --require espower-typescript/guess \"test/**/${TEST:-*.ts}\"","typedoc":"typedoc --mode modules --excludeExternals","watch:compile":"tsc --project . --watch","watch":"supervisor --watch build --quiet --exec npm -- run start"},"engines":{"node":"8.x.x","npm":"5.x.x"},"gitHead":"3b6d626ac149052fbf04baf4b6cac21e325484ee","_id":"@atomist/automation-seed@0.2.0","_npmVersion":"5.4.2","_nodeVersion":"8.9.0","_npmUser":{"name":"atomist","email":"npm@atomist.com"},"dist":{"integrity":"sha512-E4xFyOwUof/TeRLq1LGzzjc0VxnwKcjv6u49tNPC42CLK6L3VyOiSrYz63zGM02ik3uwt+IBs2Q+ugdFKpHSDg==","shasum":"2576f3faaf60303465dcf61bd2c9233a241c07ac","tarball":"https://registry.npmjs.org/@atomist/automation-seed/-/automation-seed-0.2.0.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEebqntWBOnWR9Uiw9h2Iswjrlpbsid9kxGBNT5isNlbAiEAzqQQKlyRWT3CrvrsdygWqsJqTMFY/80oFU3qhx/aV5A="}]},"maintainers":[{"name":"atomist","email":"npm@atomist.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/automation-seed-0.2.0.tgz_1511390145407_0.7848597757983953"}},"0.1.0":{"name":"@atomist/automation-seed","version":"0.1.0","description":"Atomist automation seed project","author":{"name":"Atomist"},"license":"Apache-2.0","repository":{"type":"git","url":"git+https://github.com/atomist/automation-seed-ts.git"},"keywords":["atomist","automation","seed"],"homepage":"https://github.com/atomist/automation-seed-ts#readme","bugs":{"url":"https://github.com/atomist/automation-seed-ts/issues"},"dependencies":{"@atomist/automation-client":"^0.1.41","app-root-path":"^2.0.1"},"devDependencies":{"@types/app-root-path":"^1.2.4","@types/mocha":"^2.2.41","@types/node":"^8.0.31","@types/power-assert":"^1.4.29","espower-typescript":"^8.0.2","graphql-code-generator":"^0.8.13","mocha":"^3.5.3","nodemon":"^1.12.0","npm-run-all":"^4.1.1","power-assert":"^1.4.4","supervisor":"^0.12.0","ts-node":"^3.3.0","tslint":"^5.4.3","typedoc":"^0.8.0","typescript":"2.5.2","typescript-formatter":"^6.0.0"},"directories":{"test":"test"},"scripts":{"autostart":"npm-run-all --parallel watch:build watch:server --print-label","autotest":"supervisor -q -n exit -e ts -x npm -- test","build":"npm run lint && npm run compile && npm test","clean":"npm run clean-js ; rm -rf *-v8.log profile.txt build","clean-js":"find src test -type f -name '*.js' -print0 | xargs -0 rm -f","compile":"npm run gql:gen && tsc -p .","distclean":"npm run clean ; rm -rf node_modules","fmt":"tsfmt --replace","git:info":"$(npm bin)/git-info","gql:gen":"gql-gen --file node_modules/@atomist/automation-client/graph/schema.cortex.json --template typescript -m --out ./src/typings/ \"./graphql/**/*.graphql\"","lint":"tslint --format verbose --project . --exclude '{build,node_modules}/**' '**/*.ts'","lint-fix":"npm run lint -- --fix","start":"npm run compile && npm run git:info && $(npm bin)/atomist-client --open=true","test":"mocha --compilers ts:espower-typescript/guess 'test/**/*.ts'","testone":"mocha --compilers ts:espower-typescript/guess \"test/**/${TEST:-*.ts}\"","typedoc":"typedoc --mode modules --excludeExternals","watch:build":"tsc --watch","watch:server":"nodemon node_modules/@atomist/automation-client/start.client.js --watch './build'"},"engines":{"node":"8.5.x","npm":"5.3.x"},"gitHead":"f9ff92a061074dfb78b583ee485083db863e37cb","_id":"@atomist/automation-seed@0.1.0","_npmVersion":"5.3.0","_nodeVersion":"8.3.0","_npmUser":{"name":"atomist","email":"npm@atomist.com"},"dist":{"integrity":"sha512-hhJCV33kHl50n6eMs9N41Xmdkbj4OCfpvQ9jk1HZYtcNMzHQn2cmVa6ygg0nTfdudY2JCKJuqTm2sNLjaLtEcw==","shasum":"53f2c3211c3504a688e9df2d1298ff1c9f2f799d","tarball":"https://registry.npmjs.org/@atomist/automation-seed/-/automation-seed-0.1.0.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCID70t8hcg3UOHFoukaUMLMj7Ri909QEko4LzK0e2y9lwAiBnUNIwZMT5Im43OAX8sZwZEgvMvS5MD+nKKnw5j5pqCA=="}]},"maintainers":[{"name":"atomist","email":"npm@atomist.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/automation-seed-0.1.0.tgz_1511390200149_0.7278697856236249"}},"0.3.0":{"name":"@atomist/automation-seed","version":"0.3.0","description":"Atomist automation seed project","author":{"name":"Atomist"},"license":"Apache-2.0","repository":{"type":"git","url":"git+https://github.com/atomist/automation-seed-ts.git"},"homepage":"https://github.com/atomist/automation-seed-ts#readme","bugs":{"url":"https://github.com/atomist/automation-seed-ts/issues"},"keywords":["atomist","automation","seed"],"dependencies":{"@atomist/automation-client":"^0.5.2","app-root-path":"^2.0.1"},"devDependencies":{"@types/app-root-path":"^1.2.4","@types/mocha":"^2.2.41","@types/node":"^8.0.46","@types/power-assert":"^1.4.29","copyfiles":"^1.2.0","espower-typescript":"^8.0.2","graphql-code-generator":"^0.8.13","mocha":"^3.5.3","npm-run-all":"^4.1.1","power-assert":"^1.4.4","rimraf":"^2.6.2","supervisor":"^0.12.0","ts-node":"^3.3.0","tslint":"^5.4.3","typedoc":"^0.9.0","typescript":"2.5.3","typescript-formatter":"^6.0.0"},"directories":{"test":"test"},"scripts":{"autostart":"npm-run-all --print-label --parallel watch:compile watch","autotest":"supervisor --watch src,test --extensions ts --no-restart-on exit --quiet --exec npm -- test","build":"npm-run-all lint compile test","clean":"npm-run-all clean:js clean:build","clean:build":"rimraf *-v8.log profile.txt build","clean:dist":"npm-run-all clean clean:npm","clean:js":"rimraf \"{src,test}/**/*.js\"","clean:npm":"rimraf node_modules","compile":"npm-run-all git:info compile:gql compile:ts","compile:gql":"npm-run-all gql:gen gql:copy","compile:ts":"tsc --project .","fmt":"tsfmt --replace","git:info":"atomist git","gql:copy":"copyfiles \"src/**/*.graphql\" build","gql:gen":"gql-gen --file node_modules/@atomist/automation-client/graph/schema.cortex.json --template typescript --no-schema --out src/typings \"{graphql,src}/**/*.graphql\"","lint":"tslint --format verbose --project . --exclude \"{build,node_modules}/**\" \"**/*.ts\"","lint:fix":"npm run lint -- --fix","start":"atomist start --no-install --no-compile","test":"mocha --require espower-typescript/guess \"test/**/*.ts\"","test:one":"mocha --require espower-typescript/guess \"test/**/${TEST:-*.ts}\"","typedoc":"typedoc --mode modules --excludeExternals --out build/typedoc src","watch:compile":"tsc --project . --watch","watch":"supervisor --watch build --quiet --exec npm -- run start"},"engines":{"node":"8.x.x","npm":"5.x.x"},"gitHead":"919656a665b9254235bf8340c534cc99f9852fb5","_id":"@atomist/automation-seed@0.3.0","_npmVersion":"5.4.2","_nodeVersion":"8.9.4","_npmUser":{"name":"atomist","email":"npm@atomist.com"},"dist":{"integrity":"sha512-bX6uyo7jczfZI3UDo4w/1CPM+gStDrqy0B0jY2zgFCQAEc7N8AtIZsMcHDxAwws0zPyn6WTJn4dW+U+v2RugkA==","shasum":"f0c82adbec343bba802ceda98e2beb30f0a40e61","tarball":"https://registry.npmjs.org/@atomist/automation-seed/-/automation-seed-0.3.0.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCrGO3DKq0aBt8heGBkm+yasVmyoYezWCoZdUwmqy4q9wIgKFKbS4zLIu23KtkbKs2Pz4+Sub70ERoirE3vGK4Ia2U="}]},"maintainers":[{"name":"atomist","email":"npm@atomist.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/automation-seed-0.3.0.tgz_1515442215629_0.1515538552775979"}},"0.4.0":{"name":"@atomist/automation-seed","version":"0.4.0","description":"Atomist automation seed project","author":{"name":"Atomist"},"license":"Apache-2.0","repository":{"type":"git","url":"git+https://github.com/atomist/automation-seed-ts.git"},"homepage":"https://github.com/atomist/automation-seed-ts#readme","bugs":{"url":"https://github.com/atomist/automation-seed-ts/issues"},"keywords":["atomist","automation","seed"],"dependencies":{"@atomist/automation-client":"^0.6.2","app-root-path":"^2.0.1"},"devDependencies":{"@types/app-root-path":"^1.2.4","@types/mocha":"^2.2.41","@types/node":"^8.0.46","@types/power-assert":"^1.4.29","copyfiles":"^1.2.0","espower-typescript":"^8.0.2","graphql-code-generator":"^0.8.13","mocha":"^3.5.3","npm-run-all":"^4.1.1","power-assert":"^1.4.4","rimraf":"^2.6.2","supervisor":"^0.12.0","ts-node":"^3.3.0","tslint":"^5.4.3","typedoc":"^0.9.0","typescript":"2.5.3","typescript-formatter":"^6.0.0"},"directories":{"test":"test"},"scripts":{"autostart":"npm-run-all --print-label --parallel watch:compile watch","autotest":"supervisor --watch src,test --extensions ts --no-restart-on exit --quiet --exec npm -- test","build":"npm-run-all lint compile test","clean":"npm-run-all clean:js clean:build","clean:build":"rimraf *-v8.log profile.txt build","clean:dist":"npm-run-all clean clean:npm","clean:js":"rimraf \"{src,test}/**/*.js\"","clean:npm":"rimraf node_modules","compile":"npm-run-all git:info compile:gql compile:ts","compile:gql":"npm-run-all gql:gen gql:copy","compile:ts":"tsc --project .","fmt":"tsfmt --replace","git:info":"atomist git","gql:copy":"copyfiles \"src/**/*.graphql\" build","gql:gen":"atomist gql-gen \"{graphql,src}/**/*.graphql\"","lint":"tslint --format verbose --project . --exclude \"{build,node_modules}/**\" \"**/*.ts\"","lint:fix":"npm run lint -- --fix","start":"atomist start --no-install --no-compile","test":"mocha --require espower-typescript/guess \"test/**/*.ts\"","test:one":"mocha --require espower-typescript/guess \"test/**/${TEST:-*.ts}\"","typedoc":"typedoc --mode modules --excludeExternals --out build/typedoc src","watch:compile":"tsc --project . --watch","watch":"supervisor --watch build --quiet --exec npm -- run start"},"engines":{"node":"9.x.x","npm":"5.x.x"},"gitHead":"f9aa5eeddd4eb83abc5ff3cbb52c4b04da81c8c8","_id":"@atomist/automation-seed@0.4.0","_npmVersion":"5.6.0","_nodeVersion":"9.4.0","_npmUser":{"name":"atomist","email":"npm@atomist.com"},"dist":{"integrity":"sha512-73e2wqOyGJNEsZ8h4zIbl9EGVrVHNqLB+cRxJAQn4HqHJiIkZWkGTZ4qo6WDhjjH43IqZcjqDPz1aJ5trbRA6w==","shasum":"835bbffced73417e1bcda8049dc53be841950c17","tarball":"https://registry.npmjs.org/@atomist/automation-seed/-/automation-seed-0.4.0.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDNkXaj+AkB6990LnjNXqsClkMmkJFRGSVv/tAWB1w8yQIgP0fRNEQ6Vm/X0ikEQ9dkxZdTicpTWYIEptHKmXwXPag="}]},"maintainers":[{"name":"atomist","email":"npm@atomist.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/automation-seed-0.4.0.tgz_1516202424856_0.7053765279706568"}},"0.5.0":{"name":"@atomist/automation-seed","version":"0.5.0","description":"Atomist automation seed project","author":{"name":"Atomist"},"license":"Apache-2.0","repository":{"type":"git","url":"git+https://github.com/atomist/automation-seed-ts.git"},"homepage":"https://github.com/atomist/automation-seed-ts#readme","bugs":{"url":"https://github.com/atomist/automation-seed-ts/issues"},"keywords":["atomist","automation","seed"],"dependencies":{"@atomist/automation-client":"^0.6.6","app-root-path":"^2.0.1"},"devDependencies":{"@types/app-root-path":"^1.2.4","@types/mocha":"^2.2.41","@types/node":"^8.0.46","@types/power-assert":"^1.4.29","copyfiles":"^1.2.0","espower-typescript":"^8.0.2","graphql-code-generator":"^0.8.13","mocha":"^3.5.3","nodemon":"^1.14.11","npm-run-all":"^4.1.1","power-assert":"^1.4.4","rimraf":"^2.6.2","ts-node":"^3.3.0","tslint":"^5.9.1","typedoc":"^0.9.0","typescript":"2.5.3","typescript-formatter":"^6.0.0"},"directories":{"test":"test"},"scripts":{"autostart":"nodemon --exec ts-node --watch build --ext ts -- node_modules/@atomist/automation-client/start.client.js","autotest":"nodemon --watch src,test --extensions ts --no-restart-on exit --quiet --exec npm -- test","build":"npm-run-all lint compile test","clean":"npm-run-all clean:js clean:build","clean:build":"rimraf *-v8.log profile.txt build","clean:dist":"npm-run-all clean clean:npm","clean:js":"rimraf \"{src,test}/**/*.js\"","clean:npm":"rimraf node_modules","compile":"npm-run-all git:info compile:gql compile:ts","compile:gql":"npm-run-all gql:gen gql:copy","compile:ts":"tsc --project .","fmt":"tsfmt --replace","git:info":"atomist git","gql:copy":"copyfiles \"src/**/*.graphql\" build","gql:gen":"atomist gql-gen \"{graphql,src}/**/*.graphql\"","lint":"tslint --format verbose --project . --exclude \"{build,node_modules}/**\" \"**/*.ts\"","lint:fix":"npm run lint -- --fix","start":"atomist start --no-install --no-compile","test":"mocha --require espower-typescript/guess \"test/**/*.ts\"","test:one":"mocha --require espower-typescript/guess \"test/**/${TEST:-*.ts}\"","typedoc":"typedoc --mode modules --excludeExternals --out build/typedoc src"},"engines":{"node":"9.x.x","npm":"5.x.x"},"gitHead":"f3f5a1b9086d9804eb25658daa7d16de27675ee0","_id":"@atomist/automation-seed@0.5.0","_npmVersion":"5.6.0","_nodeVersion":"9.4.0","_npmUser":{"name":"atomist","email":"npm@atomist.com"},"dist":{"integrity":"sha512-xmBtyTdrzBlN0fm9v3RAn+t/Bbrbq/9jY7Cp4WCzyqoKOpPnmsAA2wYIyXYz97QRmO5E0XzBR6ls71t6UkX5nw==","shasum":"ee4b85dc9df4fc83f7234a760b99bd4a4750302b","tarball":"https://registry.npmjs.org/@atomist/automation-seed/-/automation-seed-0.5.0.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIA9lSglHvX0142ovUxrkVWaUrsomyK0xxNHLJIywVozDAiAsp/A6H7AnpTLOWqT2m2E4spWIB/zGMkO+C6RT09KiZQ=="}]},"maintainers":[{"name":"atomist","email":"npm@atomist.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/automation-seed-0.5.0.tgz_1517429421603_0.7848048759624362"}},"0.6.0":{"name":"@atomist/automation-seed","version":"0.6.0","description":"Atomist automation seed project","author":{"name":"Atomist"},"license":"Apache-2.0","repository":{"type":"git","url":"git+https://github.com/atomist/automation-seed-ts.git"},"homepage":"https://github.com/atomist/automation-seed-ts#readme","bugs":{"url":"https://github.com/atomist/automation-seed-ts/issues"},"keywords":["atomist","automation","seed"],"dependencies":{"@atomist/automation-client":"^0.6.6","app-root-path":"^2.0.1"},"devDependencies":{"@types/app-root-path":"^1.2.4","@types/mocha":"^2.2.41","@types/node":"^8.0.46","@types/power-assert":"^1.4.29","copyfiles":"^1.2.0","espower-typescript":"^8.0.2","graphql-code-generator":"^0.8.13","mocha":"^3.5.3","nodemon":"^1.14.12","npm-run-all":"^4.1.1","power-assert":"^1.4.4","rimraf":"^2.6.2","supervisor":"^0.12.0","ts-node":"^3.3.0","tslint":"^5.9.1","typedoc":"^0.9.0","typescript":"2.5.3","typescript-formatter":"^6.0.0"},"directories":{"test":"test"},"scripts":{"autostart":"nodemon --watch build --ext ts --exec ts-node -- node_modules/@atomist/automation-client/start.client.js","autotest":"supervisor --watch src,test --extensions ts --no-restart-on exit --quiet --exec npm -- test","build":"npm-run-all lint compile test","clean":"npm-run-all clean:js clean:build","clean:build":"rimraf *-v8.log profile.txt build","clean:dist":"npm-run-all clean clean:npm","clean:js":"rimraf \"{src,test}/**/*.js\"","clean:npm":"rimraf node_modules","compile":"npm-run-all git:info compile:gql compile:ts","compile:gql":"npm-run-all gql:gen gql:copy","compile:ts":"tsc --project .","fmt":"tsfmt --replace","git:info":"atomist git","gql:copy":"copyfiles \"src/**/*.graphql\" build","gql:gen":"atomist gql-gen \"{graphql,src}/**/*.graphql\"","lint":"tslint --format verbose --project . --exclude \"{build,node_modules}/**\" \"**/*.ts\"","lint:fix":"npm run lint -- --fix","start":"atomist start --no-install --no-compile","test":"mocha --require espower-typescript/guess \"test/**/*.ts\"","test:one":"mocha --require espower-typescript/guess \"test/**/${TEST:-*.ts}\"","typedoc":"typedoc --mode modules --excludeExternals --out build/typedoc src"},"engines":{"node":"9.x.x","npm":"5.x.x"},"gitHead":"278e8737881c3ca3f893b01cbbfcb952cfe1e05e","_id":"@atomist/automation-seed@0.6.0","_npmVersion":"5.6.0","_nodeVersion":"9.5.0","_npmUser":{"name":"atomist","email":"npm@atomist.com"},"dist":{"integrity":"sha512-5lkNbc3CJfygrtkrpekPS6FQ7pCiuFnCNGkY1FTlet6m17NLg0BFJvtM25amYL59Ps/jPJMVjQ39QIUYtlwlEQ==","shasum":"bc2e6ef3583d7d00abd69305ed0fdbbda2463e78","tarball":"https://registry.npmjs.org/@atomist/automation-seed/-/automation-seed-0.6.0.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGh1h5XAX/kd3rA7T1ffdUZGnqC87itcEmEOlxkDMDnFAiBsJOPJdWJ9mX40ni3TZoAe/OuPBqdc8WkPaKOVEziPqw=="}]},"maintainers":[{"name":"atomist","email":"npm@atomist.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/automation-seed-0.6.0.tgz_1517861848349_0.002243179129436612"}},"0.7.0":{"name":"@atomist/automation-seed","version":"0.7.0","description":"Atomist automation seed project","author":{"name":"Atomist"},"license":"Apache-2.0","repository":{"type":"git","url":"git+https://github.com/atomist/automation-seed-ts.git"},"homepage":"https://github.com/atomist/automation-seed-ts#readme","bugs":{"url":"https://github.com/atomist/automation-seed-ts/issues"},"keywords":["atomist","automation","seed"],"dependencies":{"@atomist/automation-client":"^0.6.6","app-root-path":"^2.0.1"},"devDependencies":{"@types/app-root-path":"^1.2.4","@types/mocha":"^2.2.41","@types/node":"^8.0.46","@types/power-assert":"^1.4.29","copyfiles":"^1.2.0","espower-typescript":"^8.0.2","graphql-code-generator":"^0.8.13","mocha":"^3.5.3","nodemon":"^1.14.12","npm-run-all":"^4.1.1","power-assert":"^1.4.4","rimraf":"^2.6.2","supervisor":"^0.12.0","ts-node":"^3.3.0","tslint":"^5.9.1","typedoc":"^0.9.0","typescript":"2.5.3","typescript-formatter":"^6.0.0"},"directories":{"test":"test"},"scripts":{"autostart":"nodemon --watch build --ext ts --exec ts-node -- node_modules/@atomist/automation-client/start.client.js","autotest":"supervisor --watch src,test --extensions ts --no-restart-on exit --quiet --exec npm -- test","build":"npm-run-all lint compile test","clean":"npm-run-all clean:js clean:build","clean:build":"rimraf *-v8.log profile.txt build","clean:dist":"npm-run-all clean clean:npm","clean:js":"rimraf \"{src,test}/**/*.js\"","clean:npm":"rimraf node_modules","compile":"npm-run-all git:info compile:gql compile:ts","compile:gql":"npm-run-all gql:gen gql:copy","compile:ts":"tsc --project .","fmt":"tsfmt --replace","git:info":"atomist git","gql:copy":"copyfiles \"src/**/*.graphql\" build","gql:gen":"atomist gql-gen \"{graphql,src}/**/*.graphql\"","lint":"tslint --format verbose --project . --exclude \"{build,node_modules}/**\" \"**/*.ts\"","lint:fix":"npm run lint -- --fix","start":"atomist start --no-install --no-compile","test":"mocha --require espower-typescript/guess \"test/**/*.ts\"","test:one":"mocha --require espower-typescript/guess \"test/**/${TEST:-*.ts}\"","typedoc":"typedoc --mode modules --excludeExternals --out build/typedoc src"},"engines":{"node":"9.x.x","npm":"5.x.x"},"gitHead":"d8fbdd879048ba56bfc50483e26f18fcec546f27","_id":"@atomist/automation-seed@0.7.0","_npmVersion":"5.6.0","_nodeVersion":"9.5.0","_npmUser":{"name":"atomist","email":"npm@atomist.com"},"dist":{"integrity":"sha512-hvhBPdAghIuS4rqVw+cngS4WFLh5iRQ71a8cVYRCIx91O1poVK9ASWU8lUkiT01NAevEG3gsN4Ywv11b+sSn3Q==","shasum":"5c2674b1f8e07a7046df68e9603a9bd58ba24750","tarball":"https://registry.npmjs.org/@atomist/automation-seed/-/automation-seed-0.7.0.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIA3m7i5nLFh/JAAJ60do/edyEcw3uNm1bk5qI8IEqL1rAiAgIXDN6lPuiK4xRviME6yM6Sa6W33ymlqvptsrJTu9ag=="}]},"maintainers":[{"name":"atomist","email":"npm@atomist.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/automation-seed-0.7.0.tgz_1517944240835_0.3685662946663797"}},"0.8.0":{"name":"@atomist/automation-seed","version":"0.8.0","description":"Atomist automation seed project","author":{"name":"Atomist"},"license":"Apache-2.0","repository":{"type":"git","url":"git+https://github.com/atomist/automation-seed-ts.git"},"homepage":"https://github.com/atomist/automation-seed-ts#readme","bugs":{"url":"https://github.com/atomist/automation-seed-ts/issues"},"keywords":["atomist","automation","seed"],"dependencies":{"@atomist/automation-client":"^0.8.0","app-root-path":"^2.0.1"},"devDependencies":{"@types/app-root-path":"^1.2.4","@types/mocha":"^2.2.48","@types/node":"^9.4.1","@types/power-assert":"^1.4.29","copyfiles":"^1.2.0","espower-typescript":"^8.1.3","graphql-code-generator":"^0.8.14","mocha":"^5.0.0","nodemon":"^1.14.12","npm-run-all":"^4.1.2","power-assert":"^1.4.4","rimraf":"^2.6.2","supervisor":"^0.12.0","ts-node":"^4.1.0","tslint":"^5.9.1","typedoc":"^0.10.0","typescript":"^2.7.1","typescript-formatter":"^7.0.1"},"directories":{"test":"test"},"scripts":{"autostart":"nodemon --watch src --ext ts --exec ts-node -- node_modules/@atomist/automation-client/start.client.js","autotest":"supervisor --watch src,test --extensions ts --no-restart-on exit --quiet --exec npm -- test","build":"npm-run-all lint compile test typedoc","clean":"npm-run-all clean:js clean:build","clean:build":"npm-run-all clean:gql clean:ts clean:run","clean:dist":"npm-run-all clean clean:npm","clean:gql":"rimraf src/typings/types.ts","clean:js":"rimraf \"{src,test}/**/*.js\"","clean:npm":"rimraf node_modules","clean:run":"rimraf *-v8.log profile.txt build","clean:ts":"rimraf build","compile":"npm-run-all git:info compile:gql compile:ts","compile:gql":"npm-run-all gql:gen gql:copy","compile:ts":"tsc --project .","fmt":"tsfmt --replace","git:info":"atomist git","gql:copy":"copyfiles \"src/**/*.graphql\" build","gql:gen":"atomist gql-gen \"{graphql,src}/**/*.graphql\"","lint":"tslint --format verbose --project . --exclude \"{build,node_modules}/**\" \"**/*.ts\"","lint:fix":"npm run lint -- --fix","start":"atomist start --no-install --no-compile","test":"mocha --require espower-typescript/guess \"test/**/*.ts\"","test:one":"mocha --require espower-typescript/guess \"test/**/${TEST:-*.ts}\"","typedoc":"typedoc --mode modules --excludeExternals --out build/typedoc src"},"engines":{"node":"9.x.x","npm":"5.x.x"},"gitHead":"80e01ac5847e55ab68e98a578ecb05c81bae7ce3","_id":"@atomist/automation-seed@0.8.0","_npmVersion":"5.6.0","_nodeVersion":"9.5.0","_npmUser":{"name":"atomist","email":"npm@atomist.com"},"dist":{"integrity":"sha512-0a2id+BG6sDG8Ro1HxfwmdKXcq1YLLjSbb5/g5+1g1cz777dS6/7E6vikyeauvcNhP8kcVg5kHO4nyf88QO4aQ==","shasum":"7e2e413e9ec59c54b5b75497fe9b0f37e08fd1cc","tarball":"https://registry.npmjs.org/@atomist/automation-seed/-/automation-seed-0.8.0.tgz","fileCount":17,"unpackedSize":52069,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD7ypsexj52uTdCxpDSPTdTfccSbBDPXuE5qdKzAZyCdQIhAKjVaPU2+DnaFdDHDMoerF9CxokgQxrSGC+ncGW0fSaS"}]},"maintainers":[{"name":"atomist","email":"npm@atomist.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/automation-seed_0.8.0_1521468494985_0.13153179650154456"},"_hasShrinkwrap":false},"0.9.0":{"name":"@atomist/automation-seed","version":"0.9.0","description":"Atomist automation seed project","author":{"name":"Atomist"},"license":"Apache-2.0","repository":{"type":"git","url":"git+https://github.com/atomist/automation-seed-ts.git"},"homepage":"https://github.com/atomist/automation-seed-ts#readme","bugs":{"url":"https://github.com/atomist/automation-seed-ts/issues"},"keywords":["atomist","automation","seed"],"dependencies":{"@atomist/automation-client":"^0.13.0","app-root-path":"^2.0.1"},"devDependencies":{"@types/app-root-path":"^1.2.4","@types/mocha":"^2.2.48","@types/node":"^9.4.1","@types/power-assert":"^1.4.29","copyfiles":"^1.2.0","espower-typescript":"^8.1.3","graphql-code-generator":"^0.8.14","mocha":"^5.0.0","nodemon":"^1.14.12","npm-run-all":"^4.1.2","power-assert":"^1.4.4","rimraf":"^2.6.2","supervisor":"^0.12.0","ts-node":"^4.1.0","tslint":"^5.9.1","typedoc":"^0.10.0","typescript":"^2.7.1","typescript-formatter":"^7.0.1"},"directories":{"test":"test"},"scripts":{"autostart":"nodemon --watch src --ext ts --exec ts-node -- node_modules/@atomist/automation-client/start.client.js","autotest":"supervisor --watch src,test --extensions ts --no-restart-on exit --quiet --exec npm -- test","build":"npm-run-all lint compile test typedoc","clean":"npm-run-all clean:js clean:build","clean:build":"npm-run-all clean:gql clean:ts clean:run","clean:dist":"npm-run-all clean clean:npm","clean:gql":"rimraf src/typings/types.ts","clean:js":"rimraf \"{src,test}/**/*.js\"","clean:npm":"rimraf node_modules","clean:run":"rimraf *-v8.log profile.txt build","clean:ts":"rimraf build","compile":"npm-run-all git:info compile:gql compile:ts","compile:gql":"npm-run-all gql:gen gql:copy","compile:ts":"tsc --project .","fmt":"tsfmt --replace","git:info":"atomist git","gql:copy":"copyfiles \"src/**/*.graphql\" build","gql:gen":"atomist gql-gen \"{graphql,src}/**/*.graphql\"","lint":"tslint --format verbose --project . --exclude \"{build,node_modules}/**\" \"**/*.ts\"","lint:fix":"npm run lint -- --fix","start":"atomist start --no-install --no-compile","test":"mocha --require espower-typescript/guess \"test/**/*.ts\"","test:one":"mocha --require espower-typescript/guess \"test/**/${TEST:-*.ts}\"","typedoc":"typedoc --mode modules --excludeExternals --out build/typedoc src"},"engines":{"node":"9.x.x","npm":"5.x.x"},"gitHead":"f8ddee484d6630e292d8c7efbcc2b703b32efac5","_id":"@atomist/automation-seed@0.9.0","_npmVersion":"5.6.0","_nodeVersion":"9.5.0","_npmUser":{"name":"atomist","email":"npm@atomist.com"},"dist":{"integrity":"sha512-ny1DfgSpHamhzWbx+Jm6iX7PQ48zZU+L4tdPNQiyO/YymzIlL+GfKEauYHTbLjsHkJOX1ORGvrVaDzLUonmxtQ==","shasum":"1e091c0412f6ebf0028edfa4bff9d1495693244c","tarball":"https://registry.npmjs.org/@atomist/automation-seed/-/automation-seed-0.9.0.tgz","fileCount":20,"unpackedSize":57318,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICNuoq6r+BW3H9LpSNfRcKCQmoZMjkj3LAiKAZUiLCsQAiBPjU9Pq1rCj+MWMFZ4ADz+y/n+HBDnmV31BMZrMzGZtw=="}]},"maintainers":[{"name":"atomist","email":"npm@atomist.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/automation-seed_0.9.0_1523397178311_0.45256917677033504"},"_hasShrinkwrap":false},"0.10.0":{"name":"@atomist/automation-seed","version":"0.10.0","description":"Atomist automation seed project","author":{"name":"Atomist"},"license":"Apache-2.0","repository":{"type":"git","url":"git+https://github.com/atomist/automation-seed-ts.git"},"homepage":"https://github.com/atomist/automation-seed-ts#readme","bugs":{"url":"https://github.com/atomist/automation-seed-ts/issues"},"keywords":["atomist","automation","seed"],"dependencies":{"@atomist/automation-client":"^0.13.1","app-root-path":"^2.0.1"},"devDependencies":{"@types/app-root-path":"^1.2.4","@types/mocha":"^2.2.48","@types/node":"^9.4.1","@types/power-assert":"^1.4.29","copyfiles":"^1.2.0","espower-typescript":"^8.1.3","graphql-code-generator":"^0.8.14","mocha":"^5.0.0","nodemon":"^1.14.12","npm-run-all":"^4.1.2","power-assert":"^1.4.4","rimraf":"^2.6.2","supervisor":"^0.12.0","ts-node":"^4.1.0","tslint":"^5.9.1","typedoc":"^0.10.0","typescript":"^2.7.1","typescript-formatter":"^7.0.1"},"directories":{"test":"test"},"scripts":{"autostart":"nodemon --watch src --ext ts --exec ts-node -- node_modules/@atomist/automation-client/start.client.js","autotest":"supervisor --watch src,test --extensions ts --no-restart-on exit --quiet --exec npm -- test","build":"npm-run-all lint compile test typedoc","clean":"npm-run-all clean:js clean:build","clean:build":"npm-run-all clean:gql clean:ts clean:run","clean:dist":"npm-run-all clean clean:npm","clean:gql":"rimraf src/typings/types.ts","clean:js":"rimraf \"{src,test}/**/*.js\"","clean:npm":"rimraf node_modules","clean:run":"rimraf *-v8.log profile.txt build","clean:ts":"rimraf build","compile":"npm-run-all git:info compile:gql compile:ts","compile:gql":"npm-run-all gql:gen gql:copy","compile:ts":"tsc --project .","fmt":"tsfmt --replace","git:info":"atomist git","gql:copy":"copyfiles \"src/**/*.graphql\" build","gql:gen":"atomist gql-gen --no-install \"{graphql,src}/**/*.graphql\"","lint":"tslint --format verbose --project . --exclude \"{build,node_modules}/**\" \"**/*.ts\"","lint:fix":"npm run lint -- --fix","start":"atomist start --no-install --no-compile","test":"mocha --require espower-typescript/guess \"test/**/*.ts\"","test:one":"mocha --require espower-typescript/guess \"test/**/${TEST:-*.ts}\"","typedoc":"typedoc --mode modules --excludeExternals --out build/typedoc src"},"engines":{"node":"9.x.x","npm":"5.x.x"},"gitHead":"6239d274f3b92a294476de8dfac8f1a4cec78efb","_id":"@atomist/automation-seed@0.10.0","_npmVersion":"5.6.0","_nodeVersion":"9.5.0","_npmUser":{"name":"atomist","email":"npm@atomist.com"},"dist":{"integrity":"sha512-9Chjge8XzQma/2FblruUtFUZQQlyz1ko4JRHB0NiUwxPVMDYeUuZhng7U9Xxot1c13HsbtYPZy9a7DQwueLJHA==","shasum":"51355cf7a12478b5b2dfe78c63cf2d2b2784d563","tarball":"https://registry.npmjs.org/@atomist/automation-seed/-/automation-seed-0.10.0.tgz","fileCount":20,"unpackedSize":57508,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEITcj7elPGPoLwgNgJ17GhUPTefdwdqB/EOTLTO0g4ZAiEAizksq2YX5lHg2M9nO8cSY4mfuorMFRka7W4lsQ1FCrw="}]},"maintainers":[{"name":"atomist","email":"npm@atomist.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/automation-seed_0.10.0_1523633318450_0.3026759274546671"},"_hasShrinkwrap":false},"0.11.0-20180801211420":{"name":"@atomist/automation-seed","version":"0.11.0-20180801211420","description":"Atomist automation client seed project","author":{"name":"Atomist"},"license":"Apache-2.0","repository":{"type":"git","url":"git+https://github.com/atomist/automation-seed-ts.git"},"homepage":"https://github.com/atomist/automation-seed-ts#readme","bugs":{"url":"https://github.com/atomist/automation-seed-ts/issues"},"keywords":["atomist","automation","seed"],"main":"./index.js","types":"./index.d.ts","dependencies":{"@atomist/automation-client":"^0.19.1","app-root-path":"^2.0.1"},"devDependencies":{"@types/app-root-path":"^1.2.4","@types/mocha":"^5.2.5","@types/node":"^9.4.1","@types/power-assert":"^1.4.29","copyfiles":"^1.2.0","espower-typescript":"^8.1.3","graphql-code-generator":"^0.8.14","mocha":"^5.2.0","nodemon":"^1.14.12","npm-run-all":"^4.1.2","power-assert":"^1.4.4","rimraf":"^2.6.2","supervisor":"^0.12.0","ts-node":"^4.1.0","tslint":"^5.11.0","typedoc":"^0.11.1","typescript":"^2.9.2","typescript-formatter":"^7.2.2"},"directories":{"test":"test"},"scripts":{"autostart":"nodemon --watch index.ts,lib --ext ts --exec ts-node -- node_modules/@atomist/automation-client/start.client.js","autotest":"supervisor --watch index.ts,lib,test --extensions ts --no-restart-on exit --quiet --exec npm -- test","build":"npm-run-all compile test lint doc","clean":"npm-run-all clean:compile clean:doc clean:run","clean:compile":"rimraf build git-info.json \"index.{d.ts,js*}\" \"{lib,test}/**/*.{d.ts,js*}\" lib/typings/types.ts","clean:dist":"npm-run-all clean clean:npm","clean:doc":"rimraf doc","clean:npm":"rimraf node_modules","clean:run":"rimraf *-v8.log profile.txt log","compile":"npm-run-all git:info gql:gen compile:ts","compile:ts":"tsc --project .","doc":"typedoc --mode modules --exclude \"**/*.d.ts\" --out doc index.ts lib","fmt":"tsfmt --replace","git:info":"atomist git","gql:gen":"atomist gql-gen --no-install \"lib/**/*.graphql\"","lint":"tslint --format verbose --project . --exclude \"{build,node_modules}/**\" --exclude \"**/*.d.ts\" \"**/*.ts\"","lint:fix":"npm run lint -- --fix","start":"atomist start --no-install --no-compile","test":"mocha --require espower-typescript/guess \"test/**/*.test.ts\"","test:one":"mocha --require espower-typescript/guess \"test/**/${TEST:-*.test.ts}\"","typedoc":"npm run doc"},"engines":{"node":"9.x.x","npm":"5.x.x"},"gitHead":"6810d9facaa249f3dba6be5b73cacf5893d1efce","readme":"# @atomist/automation-seed\n\n[![npm version](https://badge.fury.io/js/%40atomist%2Fautomation-seed.svg)](https://badge.fury.io/js/%40atomist%2Fautomation-seed)\n\nThis repository contains examples demonstrating use of\nthe [Atomist][atomist] API.  You will find examples illustrating:\n\n-   Creating bot commands using _command handlers_\n-   Responding to DevOps events, e.g., commits pushed to a repository,\n    using _event handlers_\n\nThese examples use the [`@atomist/automation-client`][client] node\nmodule to implement a local client that connects to the Atomist API.\n\n[client]: https://github.com/atomist/automation-client-ts (@atomist/automation-client Node Module)\n\n## Prerequisites\n\nSee the [Atomist getting started][enrollment] documentation.\n\n[enrollment]: https://github.com/atomist/welcome/blob/master/enroll.md (Atomist - Getting Started)\n\nBelow are brief instructions on how to get started running this\nproject yourself.  If you just want to use the core functionality of\nAtomist, see the [Atomist documentation][docs].  For more detailed\ninformation on developing automations, see the [Atomist Developer\nGuide][dev].\n\n[docs]: https://docs.atomist.com/ (Atomist User Guide)\n[dev]: https://docs.atomist.com/developer/ (Atomist Developer Guide)\n\n### GitHub account\n\nYou must have a GitHub account, either GitHub.com or GitHub Enterprise\n(GHE).  If you want to use Atomist with GHE, please [contact\nAtomist](mailto:support@atomist.com).  The remainder of these\ninstructions assume you have a GitHub.com account.  If you do not\nalready have a GitHub.com account, you can [create\none][github-create].\n\nTo run automations, you will need a GitHub [personal access\ntoken][token] with \"read:org\" scope.  You can create one yourself or\nuse the Atomist CLI to do it for you (see below).\n\n[github-create]: https://github.com/join (Join GitHub)\n[token]: https://github.com/settings/tokens (GitHub Personal Access Tokens)\n\n### Atomist workspace\n\nYou also need to sign up with Atomist and create a workspace.  Once\nyou have a GitHub.com account, you can sign up with Atomist at\n[https://app.atomist.com/][atm-app].  Once you are registered with\nAtomist, you can create an Atomist workspace and add your GitHub user\nand/or organizations to that workspace.\n\nOnce you have created your Atomist workspace, take note of your\nAtomist workspace/team ID.  You can always find your Atomist workspace\nID on the workspace's settings page or, if you have added the Atomist\napp to Slack, you can send the Atomist bot the message `team` and it\nwill tell you the workspace/team ID.\n\n[atm-app]: https://app.atomist.com/ (Atomist Web Interface)\n\n### Slack\n\nAtomist has a powerful [Slack][slackhq] application, allowing you to\nsee and act on your development activity right in Slack.  Slack is not\na requirement for using Atomist, but if you try it, you'll probably\nlike it.  If you do not have access to a Slack team, it is easy to\n[create your own][slack-team].\n\nIn your Slack team, install the Atomist app in Slack, click the button\nbelow.\n\n<p align=\"center\">\n <a href=\"https://atm.st/2wiDlUe\">\n  <img alt=\"Add to Slack\" height=\"50\" width=\"174\" src=\"https://platform.slack-edge.com/img/add_to_slack@2x.png\" />\n </a>\n</p>\n\nOnce installed, the Atomist bot will guide you through connecting\nAtomist, Slack, and GitHub.\n\n[slackhq]: https://slack.com/ (Slack)\n[slack-team]: https://slack.com/get-started#create (Create a Slack Team)\n\n### Configuration\n\nOnce you have GitHub and Atomist set up, install the Atomist CLI and\nconfigure your local environment.\n\n```console\n$ npm install -g @atomist/automation-client\n$ atomist config\n```\n\nThe second command does two things: records what Atomist\nworkspace/team you want your automations running in and creates a\n[GitHub personal access token][token] with \"repo\" and \"read:org\"\nscopes.\n\nThe script will prompt you for your Atomist workspace/team ID, or you\ncan supply it using the `--team TEAM_ID` command-line option.  You can\nget your Atomist team ID from the settings page for your Atomist\nworkspace or by typing `team` in a DM to the Atomist bot.\n\nThe script will prompt you for your GitHub credentials.  It needs them\nto create the GitHub personal access token.  Atomist does not store\nyour credentials and only writes the generated token to your local\nmachine.\n\nThe Atomist API client authenticates using a GitHub personal access\ntoken.  The Atomist API uses the token to confirm you are who you say\nyou are and are in a GitHub organization connected to the Slack team\nin which you are running the automations.  In addition, it uses the\ntoken when performing any operations that access the GitHub API.\n\n## Running\n\nYou can run this automation using its Docker container, e.g., in\nKubernetes, or locally.\n\n### Docker and Kubernetes\n\nTo download and run the Docker image of this project, run the\nfollowing command\n\n```console\n$ docker run --rm -e ATOMIST_TOKEN=YOUR_TOKEN -e ATOMIST_TEAMS=TEAM_ID \\\n    atomist/automation-seed-ts:VERSION\n```\n\nreplacing `YOUR_TOKEN` and `TEAM_ID` with the token and team ID from\nyour `~/.atomist/client.config.json` created above by the `atomist\nconfig` command and `VERSION` with the [latest release of this\nrepo][latest].  Note that this will not be running any code from your\nlocal machine but the code in the Docker image.\n\nTo run the Docker image in a Kubernetes cluster, you can use the\n[deployment spec](assets/kube/deployment.yaml) from this repository as\na starting point.  Before creating the deployment resource, you will\nneed to create a secret with the following command, replacing `TOKEN`\nand `TEAM_ID` as above.\n\n```console\n$ kubectl create secret generic automation --from-file=$HOME/.atomist/client.config.json\n$ kubectl create -f assets/kube/deployment.yaml\n```\n\n[latest]: https://github.com/atomist/automation-seed-ts/releases/latest\n\n### Locally\n\nYou will need to have [Node.js][node] installed.  To verify that the\nright versions are installed, run:\n\n```console\n$ node -v\nv9.7.1\n$ npm -v\n5.6.0\n```\n\nThe `node` version should be 8 or greater and the `npm` version should\nbe 5 or greater.\n\n[node]: https://nodejs.org/ (Node.js)\n\n#### Cloning the repository and installing dependencies\n\nTo get started run the following commands to clone the project,\ninstall its dependencies, and build the project:\n\n```console\n$ git clone git@github.com:atomist/automation-seed-ts.git\n$ cd automation-seed-ts\n$ npm install\n$ npm run build\n```\n\n#### Starting up the automation-client\n\nYou can run this repository locally, allowing you to change the source\ncode of this project and immediately see the effects in your environment\nwith the following command\n\n```console\n$ npm run autostart\n```\n\nTo run in a more traditional manner, build the project and then simple\nstart it.\n\n```console\n$ npm start\n```\n\n## Using\n\n### Invoking a command handler from Slack\n\nThis project contains the code to create and respond to a simple\n`hello world` bot command.  The code that defines the bot command and\nimplements responding to the command, i.e., the _command handler_, can\nbe found in [`HelloWorld.ts`][hello].  Once you have your local\nautomation client running (the previous step in this guide), you can\ninvoke the command handler by sending the Atomist bot the command as a\nmessage.  Be sure the Atomist bot is in the channel before sending it\nthe message.\n\n```\n/invite @atomist\n@atomist hello world\n```\n\nOnce you've submitted the command in Slack, you'll see the incoming\nand outgoing messages show up in the logs of your locally running\nautomation-client.  Ultimately, you should see the response from the\nbot in Slack.\n\n[hello]: https://github.com/atomist/automation-seed-ts/blob/master/src/commands/HelloWorld.ts (HelloWorld Command Handler)\n\nFeel free to modify the code in the `HelloWorld` command handler,\nNode.js will automatically reload the client, and see what happens!\n\n### Triggering an event handler\n\nWhile command handlers respond to commands you send the Atomist bot,\n_event handlers_ take action when different types of events occur in\nyour development and operations environment.  Some examples of events\nare commits pushed to a repo, or a CI build that fails, or an instance\nof a running service that becomes unhealthy.  Example responses to those\nevents are showing the commits in a Slack message, automatically\nrestarting the build, and triggering a PagerDuty alert, respectively.\n\nThe sample event handler in this project, [NotifyOnPush][nop-handler],\nwill notice when someone pushes new commits to a repository in the\nGitHub organization and send a notice of that push to all Slack\nchannels associated with that repository.\n\nIf you have followed the instructions above and are running these\nautomations against the atomist-playground Slack team and GitHub\norganization, go ahead and edit the [notify-on-push][nop-repo]\nrepository by adding some text to its [README][nop-readme].  Once you\nhave saved your changes, you should see that event appear in the\nconsole logs of your locally running automation client, followed by a\nlog of the actions the event handler is taking.  Once those actions\nare complete, you should see a new message in the\n[`#notify-on-push`][nop-channel] channel in the atomist-playground\nSlack team.\n\n[nop-handler]: https://github.com/atomist/automation-seed-ts/blob/master/src/events/NotifyOnPush.ts (Atomist NotifyOnPush Event Handler)\n[nop-repo]: https://github.com/atomist-playground/notify-on-push (Atomist NotifyOnPush Repository)\n[nop-readme]: https://github.com/atomist-playground/notify-on-push/edit/master/README.md (Edit NotifyOnPush README)\n[nop-channel]: https://atomist-playground.slack.com/messages/C7GNF6743/ (NotifyOnPush Slack Channel)\n\n## Support\n\nGeneral support questions should be discussed in the `#support`\nchannel in our community Slack team\nat [atomist-community.slack.com][slack].\n\nIf you find a problem, please create an [issue][].\n\n[issue]: https://github.com/atomist/automation-seed-ts/issues\n\n## Development\n\nYou will need to install [node][] to build and test this project.\n\n### Build and Test\n\nCommand | Reason\n------- | ------\n`npm install` | install all the required packages\n`npm run build` | lint, compile, and test\n`npm start` | start the Atomist automation client\n`npm run autostart` | run the client, refreshing when files change\n`npm run lint` | run tslint against the TypeScript\n`npm run compile` | compile all TypeScript into JavaScript\n`npm test` | run tests and ensure everything is working\n`npm run autotest` | run tests continuously\n`npm run clean` | remove stray compiled JavaScript files and build directory\n\n### Release\n\nReleases are managed by the [Atomist SDM][atomist-sdm].  Press the\n\"Release\" button in the Atomist dashboard or Slack.\n\n[atomist-sdm]: https://github.com/atomist/atomist-sdm (Atomist Software Delivery Machine)\n\n---\n\nCreated by [Atomist][atomist].\nNeed Help?  [Join our Slack team][slack].\n\n[atomist]: https://atomist.com/ (Atomist - How Teams Deliver Software)\n[slack]: https://join.atomist.com/ (Atomist Community Slack)\n","readmeFilename":"README.md","_id":"@atomist/automation-seed@0.11.0-20180801211420","_npmVersion":"6.2.0","_nodeVersion":"9.11.2","_npmUser":{"name":"atomist","email":"npm@atomist.com"},"dist":{"integrity":"sha512-zLWyI95DvNeC32/uOsd13UJohgRuljdhQSSAFP4m3WCQYbLPBw23RFd/Ccbuj32K3SFIi8XHMGqxm8/p5L16hA==","shasum":"6e7155db5eebd9952355e9488be2de5dc19dbdb1","tarball":"https://registry.npmjs.org/@atomist/automation-seed/-/automation-seed-0.11.0-20180801211420.tgz","fileCount":29,"unpackedSize":122597,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbYiNqCRA9TVsSAnZWagAAp2IP/3fVIoFvFqpM+adk/2xX\nIOoYj5vDjUJUS4W7DVgyX1WSLtq41AnbZ8k2OIsjYxjH1tA+THWIfIIkF8Zt\n4fWHT3qB6XLlqk3ZRlAA/sBc9mwj/OpULV9kcH0T18/H6HPJCm/jjHyAim/U\n/IpPM5rXThqiOWNokvPdvtEyJu7C0M/H9WsvGbx7jxGABMeRih1xW8YRRs1l\nS4G0tYOQMQMVtcauPMpgfUjiU/4HZIdouZ89eAyHvjGqg+CF5hFe0auZdoBW\nr6kncXIHf1EeJsifnkVXxxa1gV62AG/zKAtN8ivrTSiDtjJfaCWOGqBRS3D/\noCPJzNIwNYO/9YNBCEKu7xvQbxAs0T2ZNidZL4ArFtqv3HaP0e9AP92Zxmgv\nY8Fe6rhQhmvSC+6Ach3Xb+c1T7xdcoNspXiWT9fRkUTBgOGvpdxOZhcXBp42\n5ie4twaz2lZaIluomfJ+grZq/G/Xf98Uh1zYOxCw2dXENHVsCpVlNkxRokRM\nRSp207sCGWBlGU8VPEBmUWydRrrhAgq6JG3vPetbARFOb3DxdcUkDStqxYv9\ndhS9Y0D+2yHx/XAyv3kTIZvikK91Cy1xl1+hMvOBlg4MFeO6IvUIg93BhbsK\nM2lqR0KjwCF0WTias9feI82hbrA3K1M9vuO8ohtYPzYFEA0F7UPcdnW4er+A\nXGgx\r\n=B3SP\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCqeYbfHCE0gduKTX7WVzLJy9BHmOEdVZpYWNtzkys+6QIhAPu4zAJgq3rEqj8DeBBkA6X9NqIQbKMGmmAMfnFV5kNa"}]},"maintainers":[{"name":"atomist","email":"npm@atomist.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/automation-seed_0.11.0-20180801211420_1533158249613_0.07544647034513607"},"_hasShrinkwrap":false},"0.11.0-20180802124848":{"name":"@atomist/automation-seed","version":"0.11.0-20180802124848","description":"Atomist automation client seed project","author":{"name":"Atomist"},"license":"Apache-2.0","repository":{"type":"git","url":"git+https://github.com/atomist/automation-seed-ts.git"},"homepage":"https://github.com/atomist/automation-seed-ts#readme","bugs":{"url":"https://github.com/atomist/automation-seed-ts/issues"},"keywords":["atomist","automation","seed"],"main":"./index.js","types":"./index.d.ts","dependencies":{"@atomist/automation-client":"^0.19.1","app-root-path":"^2.0.1"},"devDependencies":{"@types/app-root-path":"^1.2.4","@types/mocha":"^5.2.5","@types/node":"^9.4.1","@types/power-assert":"^1.4.29","copyfiles":"^1.2.0","espower-typescript":"^8.1.3","graphql-code-generator":"^0.8.14","mocha":"^5.2.0","nodemon":"^1.14.12","npm-run-all":"^4.1.2","power-assert":"^1.4.4","rimraf":"^2.6.2","supervisor":"^0.12.0","ts-node":"^4.1.0","tslint":"^5.11.0","typedoc":"^0.11.1","typescript":"^2.9.2","typescript-formatter":"^7.2.2"},"directories":{"test":"test"},"scripts":{"autostart":"nodemon --watch index.ts,lib --ext ts --exec ts-node -- node_modules/@atomist/automation-client/start.client.js","autotest":"supervisor --watch index.ts,lib,test --extensions ts --no-restart-on exit --quiet --exec npm -- test","build":"npm-run-all compile test lint doc","clean":"npm-run-all clean:compile clean:doc clean:run","clean:compile":"rimraf build git-info.json \"index.{d.ts,js*}\" \"{lib,test}/**/*.{d.ts,js*}\" lib/typings/types.ts","clean:dist":"npm-run-all clean clean:npm","clean:doc":"rimraf doc","clean:npm":"rimraf node_modules","clean:run":"rimraf *-v8.log profile.txt log","compile":"npm-run-all git:info gql:gen compile:ts","compile:ts":"tsc --project .","doc":"typedoc --mode modules --exclude \"**/*.d.ts\" --out doc index.ts lib","fmt":"tsfmt --replace","git:info":"atomist git","gql:gen":"atomist gql-gen --no-install \"lib/**/*.graphql\"","lint":"tslint --format verbose --project . --exclude \"{build,node_modules}/**\" --exclude \"**/*.d.ts\" \"**/*.ts\"","lint:fix":"npm run lint -- --fix","start":"atomist start --no-install --no-compile","test":"mocha --require espower-typescript/guess \"test/**/*.test.ts\"","test:one":"mocha --require espower-typescript/guess \"test/**/${TEST:-*.test.ts}\"","typedoc":"npm run doc"},"engines":{"node":"9.x.x","npm":"5.x.x"},"gitHead":"2a87f835055d7f877b25ab7c489d4d375f3b4052","readme":"# @atomist/automation-seed\n\n[![npm version](https://badge.fury.io/js/%40atomist%2Fautomation-seed.svg)](https://badge.fury.io/js/%40atomist%2Fautomation-seed)\n\nThis repository contains examples demonstrating use of\nthe [Atomist][atomist] API.  You will find examples illustrating:\n\n-   Creating bot commands using _command handlers_\n-   Responding to DevOps events, e.g., commits pushed to a repository,\n    using _event handlers_\n\nThese examples use the [`@atomist/automation-client`][client] node\nmodule to implement a local client that connects to the Atomist API.\n\n[client]: https://github.com/atomist/automation-client-ts (@atomist/automation-client Node Module)\n\n## Prerequisites\n\nSee the [Atomist getting started][enrollment] documentation.\n\n[enrollment]: https://github.com/atomist/welcome/blob/master/enroll.md (Atomist - Getting Started)\n\nBelow are brief instructions on how to get started running this\nproject yourself.  If you just want to use the core functionality of\nAtomist, see the [Atomist documentation][docs].  For more detailed\ninformation on developing automations, see the [Atomist Developer\nGuide][dev].\n\n[docs]: https://docs.atomist.com/ (Atomist User Guide)\n[dev]: https://docs.atomist.com/developer/ (Atomist Developer Guide)\n\n### GitHub account\n\nYou must have a GitHub account, either GitHub.com or GitHub Enterprise\n(GHE).  If you want to use Atomist with GHE, please [contact\nAtomist](mailto:support@atomist.com).  The remainder of these\ninstructions assume you have a GitHub.com account.  If you do not\nalready have a GitHub.com account, you can [create\none][github-create].\n\nTo run automations, you will need a GitHub [personal access\ntoken][token] with \"read:org\" scope.  You can create one yourself or\nuse the Atomist CLI to do it for you (see below).\n\n[github-create]: https://github.com/join (Join GitHub)\n[token]: https://github.com/settings/tokens (GitHub Personal Access Tokens)\n\n### Atomist workspace\n\nYou also need to sign up with Atomist and create a workspace.  Once\nyou have a GitHub.com account, you can sign up with Atomist at\n[https://app.atomist.com/][atm-app].  Once you are registered with\nAtomist, you can create an Atomist workspace and add your GitHub user\nand/or organizations to that workspace.\n\nOnce you have created your Atomist workspace, take note of your\nAtomist workspace/team ID.  You can always find your Atomist workspace\nID on the workspace's settings page or, if you have added the Atomist\napp to Slack, you can send the Atomist bot the message `team` and it\nwill tell you the workspace/team ID.\n\n[atm-app]: https://app.atomist.com/ (Atomist Web Interface)\n\n### Slack\n\nAtomist has a powerful [Slack][slackhq] application, allowing you to\nsee and act on your development activity right in Slack.  Slack is not\na requirement for using Atomist, but if you try it, you'll probably\nlike it.  If you do not have access to a Slack team, it is easy to\n[create your own][slack-team].\n\nIn your Slack team, install the Atomist app in Slack, click the button\nbelow.\n\n<p align=\"center\">\n <a href=\"https://atm.st/2wiDlUe\">\n  <img alt=\"Add to Slack\" height=\"50\" width=\"174\" src=\"https://platform.slack-edge.com/img/add_to_slack@2x.png\" />\n </a>\n</p>\n\nOnce installed, the Atomist bot will guide you through connecting\nAtomist, Slack, and GitHub.\n\n[slackhq]: https://slack.com/ (Slack)\n[slack-team]: https://slack.com/get-started#create (Create a Slack Team)\n\n### Configuration\n\nOnce you have GitHub and Atomist set up, install the Atomist CLI and\nconfigure your local environment.\n\n```console\n$ npm install -g @atomist/automation-client\n$ atomist config\n```\n\nThe second command does two things: records what Atomist\nworkspace/team you want your automations running in and creates a\n[GitHub personal access token][token] with \"repo\" and \"read:org\"\nscopes.\n\nThe script will prompt you for your Atomist workspace/team ID, or you\ncan supply it using the `--team TEAM_ID` command-line option.  You can\nget your Atomist team ID from the settings page for your Atomist\nworkspace or by typing `team` in a DM to the Atomist bot.\n\nThe script will prompt you for your GitHub credentials.  It needs them\nto create the GitHub personal access token.  Atomist does not store\nyour credentials and only writes the generated token to your local\nmachine.\n\nThe Atomist API client authenticates using a GitHub personal access\ntoken.  The Atomist API uses the token to confirm you are who you say\nyou are and are in a GitHub organization connected to the Slack team\nin which you are running the automations.  In addition, it uses the\ntoken when performing any operations that access the GitHub API.\n\n## Running\n\nYou can run this automation using its Docker container, e.g., in\nKubernetes, or locally.\n\n### Docker and Kubernetes\n\nTo download and run the Docker image of this project, run the\nfollowing command\n\n```console\n$ docker run --rm -e ATOMIST_TOKEN=YOUR_TOKEN -e ATOMIST_TEAMS=TEAM_ID \\\n    atomist/automation-seed-ts:VERSION\n```\n\nreplacing `YOUR_TOKEN` and `TEAM_ID` with the token and team ID from\nyour `~/.atomist/client.config.json` created above by the `atomist\nconfig` command and `VERSION` with the [latest release of this\nrepo][latest].  Note that this will not be running any code from your\nlocal machine but the code in the Docker image.\n\nTo run the Docker image in a Kubernetes cluster, you can use the\n[deployment spec](assets/kube/deployment.yaml) from this repository as\na starting point.  Before creating the deployment resource, you will\nneed to create a secret with the following command, replacing `TOKEN`\nand `TEAM_ID` as above.\n\n```console\n$ kubectl create secret generic automation --from-file=$HOME/.atomist/client.config.json\n$ kubectl create -f assets/kube/deployment.yaml\n```\n\n[latest]: https://github.com/atomist/automation-seed-ts/releases/latest\n\n### Locally\n\nYou will need to have [Node.js][node] installed.  To verify that the\nright versions are installed, run:\n\n```console\n$ node -v\nv9.7.1\n$ npm -v\n5.6.0\n```\n\nThe `node` version should be 8 or greater and the `npm` version should\nbe 5 or greater.\n\n[node]: https://nodejs.org/ (Node.js)\n\n#### Cloning the repository and installing dependencies\n\nTo get started run the following commands to clone the project,\ninstall its dependencies, and build the project:\n\n```console\n$ git clone git@github.com:atomist/automation-seed-ts.git\n$ cd automation-seed-ts\n$ npm install\n$ npm run build\n```\n\n#### Starting up the automation-client\n\nYou can run this repository locally, allowing you to change the source\ncode of this project and immediately see the effects in your environment\nwith the following command\n\n```console\n$ npm run autostart\n```\n\nTo run in a more traditional manner, build the project and then simple\nstart it.\n\n```console\n$ npm start\n```\n\n## Using\n\n### Invoking a command handler from Slack\n\nThis project contains the code to create and respond to a simple\n`hello world` bot command.  The code that defines the bot command and\nimplements responding to the command, i.e., the _command handler_, can\nbe found in [`HelloWorld.ts`][hello].  Once you have your local\nautomation client running (the previous step in this guide), you can\ninvoke the command handler by sending the Atomist bot the command as a\nmessage.  Be sure the Atomist bot is in the channel before sending it\nthe message.\n\n```\n/invite @atomist\n@atomist hello world\n```\n\nOnce you've submitted the command in Slack, you'll see the incoming\nand outgoing messages show up in the logs of your locally running\nautomation-client.  Ultimately, you should see the response from the\nbot in Slack.\n\n[hello]: https://github.com/atomist/automation-seed-ts/blob/master/src/commands/HelloWorld.ts (HelloWorld Command Handler)\n\nFeel free to modify the code in the `HelloWorld` command handler,\nNode.js will automatically reload the client, and see what happens!\n\n### Triggering an event handler\n\nWhile command handlers respond to commands you send the Atomist bot,\n_event handlers_ take action when different types of events occur in\nyour development and operations environment.  Some examples of events\nare commits pushed to a repo, or a CI build that fails, or an instance\nof a running service that becomes unhealthy.  Example responses to those\nevents are showing the commits in a Slack message, automatically\nrestarting the build, and triggering a PagerDuty alert, respectively.\n\nThe sample event handler in this project, [NotifyOnPush][nop-handler],\nwill notice when someone pushes new commits to a repository in the\nGitHub organization and send a notice of that push to all Slack\nchannels associated with that repository.\n\nIf you have followed the instructions above and are running these\nautomations against the atomist-playground Slack team and GitHub\norganization, go ahead and edit the [notify-on-push][nop-repo]\nrepository by adding some text to its [README][nop-readme].  Once you\nhave saved your changes, you should see that event appear in the\nconsole logs of your locally running automation client, followed by a\nlog of the actions the event handler is taking.  Once those actions\nare complete, you should see a new message in the\n[`#notify-on-push`][nop-channel] channel in the atomist-playground\nSlack team.\n\n[nop-handler]: https://github.com/atomist/automation-seed-ts/blob/master/src/events/NotifyOnPush.ts (Atomist NotifyOnPush Event Handler)\n[nop-repo]: https://github.com/atomist-playground/notify-on-push (Atomist NotifyOnPush Repository)\n[nop-readme]: https://github.com/atomist-playground/notify-on-push/edit/master/README.md (Edit NotifyOnPush README)\n[nop-channel]: https://atomist-playground.slack.com/messages/C7GNF6743/ (NotifyOnPush Slack Channel)\n\n## Support\n\nGeneral support questions should be discussed in the `#support`\nchannel in our community Slack team\nat [atomist-community.slack.com][slack].\n\nIf you find a problem, please create an [issue][].\n\n[issue]: https://github.com/atomist/automation-seed-ts/issues\n\n## Development\n\nYou will need to install [node][] to build and test this project.\n\n### Build and Test\n\nCommand | Reason\n------- | ------\n`npm install` | install all the required packages\n`npm run build` | lint, compile, and test\n`npm start` | start the Atomist automation client\n`npm run autostart` | run the client, refreshing when files change\n`npm run lint` | run tslint against the TypeScript\n`npm run compile` | compile all TypeScript into JavaScript\n`npm test` | run tests and ensure everything is working\n`npm run autotest` | run tests continuously\n`npm run clean` | remove stray compiled JavaScript files and build directory\n\n### Release\n\nReleases are managed by the [Atomist SDM][atomist-sdm].  Press the\n\"Release\" button in the Atomist dashboard or Slack.\n\n[atomist-sdm]: https://github.com/atomist/atomist-sdm (Atomist Software Delivery Machine)\n\n---\n\nCreated by [Atomist][atomist].\nNeed Help?  [Join our Slack team][slack].\n\n[atomist]: https://atomist.com/ (Atomist - How Teams Deliver Software)\n[slack]: https://join.atomist.com/ (Atomist Community Slack)\n","readmeFilename":"README.md","_id":"@atomist/automation-seed@0.11.0-20180802124848","_npmVersion":"6.3.0","_nodeVersion":"9.11.2","_npmUser":{"name":"atomist","email":"npm@atomist.com"},"dist":{"integrity":"sha512-/2Vfz40ypDo4W/J++sq4XXJRCkxpWWhngMe89TziZTshXpEJUZAchCxgjd6BCtwq9kZU2Qizq581eEIQxtLQFA==","shasum":"1a7762ff73afacfd6dd895860bc569441e00f6ed","tarball":"https://registry.npmjs.org/@atomist/automation-seed/-/automation-seed-0.11.0-20180802124848.tgz","fileCount":29,"unpackedSize":122557,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbYv6JCRA9TVsSAnZWagAA1dYP/0xoF9rHG0RNvNT5RZXv\nPqIkgXtAYoxbioYvZYQU+lCAJAhkOWXAer5h1F856pWd/TX1yuMzrIBUycig\np+T8f/TJNFpNUCuLBx6+F1mBa5f3N46O2NEFLBvGKlQxrkVm5Kh65TaE99xF\nFrehKiDJ+iHiskl9uPHQBiRGMJHdJjI9cwFeU4eqMKpKA58+wYB+Nzn8mwBJ\nIqa7fcGw9bHd31m/fu9pwkzl0Fc6FQR6n8xLDEkD3VfZAE7eAaBNYktwOEn6\nV66W1dJapefjQbWMXLPdgbX8sb5gBWEweYKB1EVqAyYvVhOGvkST+GRhq9Fj\nnHwVPs4AO29elNf05uTdnd2xfpmNfkNue5/Np0b63oE4TZr+Q1liHmoSUW+I\nRZTb+whnSrq0GK1geEnxfthEea5vkvxrL0RF+J9j4ZeWdrVCRh3DGsRf0et7\nlvveGvXklBek4l5SOZ9G3K6S01EIDJyebPjyT7Hpy3g6jrUcrguBETxcjEzj\ngTGwcLabkDbIJ6IHvKYGpnzBKg4Pu8HomLyCx0EFwnTW0dlDSooU1TSEM8lq\n6xDOiRzp5D6fvOdBErVYPlY/Rpl3am5/NkWKjoFzPeKedcoLjzDdCg3Rmk4z\nn9O+cZO/AN7MkTI/iudzzipjffHi808bePKWqiuZVcgIV8kbcQEMfB8cgGxh\nZqDv\r\n=tr8q\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHtMqk7aXOfSGkbo+GydE27g1tRbseKpwF7Sbt1MvMvYAiBq0Gf1U5JyPueoLjEB4srZIHaaPl/jdlS6yFbkTmV10w=="}]},"maintainers":[{"name":"atomist","email":"npm@atomist.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/automation-seed_0.11.0-20180802124848_1533214335436_0.3570233293682503"},"_hasShrinkwrap":false},"0.11.0-20180802193437":{"name":"@atomist/automation-seed","version":"0.11.0-20180802193437","description":"Atomist automation client seed project","author":{"name":"Atomist"},"license":"Apache-2.0","repository":{"type":"git","url":"git+https://github.com/atomist/automation-seed-ts.git"},"homepage":"https://github.com/atomist/automation-seed-ts#readme","bugs":{"url":"https://github.com/atomist/automation-seed-ts/issues"},"keywords":["atomist","automation","seed"],"main":"./index.js","types":"./index.d.ts","dependencies":{"@atomist/automation-client":"^0.19.1","app-root-path":"^2.0.1"},"devDependencies":{"@types/app-root-path":"^1.2.4","@types/mocha":"^5.2.5","@types/node":"^9.4.1","@types/power-assert":"^1.4.29","copyfiles":"^1.2.0","espower-typescript":"^8.1.3","graphql-code-generator":"^0.8.14","mocha":"^5.2.0","nodemon":"^1.14.12","npm-run-all":"^4.1.2","power-assert":"^1.4.4","rimraf":"^2.6.2","supervisor":"^0.12.0","ts-node":"^4.1.0","tslint":"^5.11.0","typedoc":"^0.11.1","typescript":"^2.9.2","typescript-formatter":"^7.2.2"},"directories":{"test":"test"},"scripts":{"autostart":"nodemon --watch index.ts,lib --ext ts --exec ts-node -- node_modules/@atomist/automation-client/start.client.js","autotest":"supervisor --watch index.ts,lib,test --extensions ts --no-restart-on exit --quiet --exec npm -- test","build":"npm-run-all compile test lint doc","clean":"npm-run-all clean:compile clean:doc clean:run","clean:compile":"rimraf build git-info.json \"index.{d.ts,js*}\" \"{lib,test}/**/*.{d.ts,js*}\" lib/typings/types.ts","clean:dist":"npm-run-all clean clean:npm","clean:doc":"rimraf doc","clean:npm":"rimraf node_modules","clean:run":"rimraf *-v8.log profile.txt log","compile":"npm-run-all git:info gql:gen compile:ts","compile:ts":"tsc --project .","doc":"typedoc --mode modules --exclude \"**/*.d.ts\" --out doc index.ts lib","fmt":"tsfmt --replace","git:info":"atomist git","gql:gen":"atomist gql-gen --no-install \"lib/**/*.graphql\"","lint":"tslint --format verbose --project . --exclude \"{build,node_modules}/**\" --exclude \"**/*.d.ts\" \"**/*.ts\"","lint:fix":"npm run lint -- --fix","start":"atomist start --no-install --no-compile","test":"mocha --require espower-typescript/guess \"test/**/*.test.ts\"","test:one":"mocha --require espower-typescript/guess \"test/**/${TEST:-*.test.ts}\"","typedoc":"npm run doc"},"engines":{"node":"9.x.x","npm":"5.x.x"},"gitHead":"b373d793968c8be7a5ad928db402b6172e8479e8","readme":"# @atomist/automation-seed\n\n[![npm version](https://badge.fury.io/js/%40atomist%2Fautomation-seed.svg)](https://badge.fury.io/js/%40atomist%2Fautomation-seed)\n\nThis repository contains examples demonstrating use of\nthe [Atomist][atomist] API.  You will find examples illustrating:\n\n-   Creating bot commands using _command handlers_\n-   Responding to DevOps events, e.g., commits pushed to a repository,\n    using _event handlers_\n\nThese examples use the [`@atomist/automation-client`][client] node\nmodule to implement a local client that connects to the Atomist API.\n\n[client]: https://github.com/atomist/automation-client-ts (@atomist/automation-client Node Module)\n\n## Prerequisites\n\nSee the [Atomist getting started][enrollment] documentation.\n\n[enrollment]: https://github.com/atomist/welcome/blob/master/enroll.md (Atomist - Getting Started)\n\nBelow are brief instructions on how to get started running this\nproject yourself.  If you just want to use the core functionality of\nAtomist, see the [Atomist documentation][docs].  For more detailed\ninformation on developing automations, see the [Atomist Developer\nGuide][dev].\n\n[docs]: https://docs.atomist.com/ (Atomist User Guide)\n[dev]: https://docs.atomist.com/developer/ (Atomist Developer Guide)\n\n### GitHub account\n\nYou must have a GitHub account, either GitHub.com or GitHub Enterprise\n(GHE).  If you want to use Atomist with GHE, please [contact\nAtomist](mailto:support@atomist.com).  The remainder of these\ninstructions assume you have a GitHub.com account.  If you do not\nalready have a GitHub.com account, you can [create\none][github-create].\n\nTo run automations, you will need a GitHub [personal access\ntoken][token] with \"read:org\" scope.  You can create one yourself or\nuse the Atomist CLI to do it for you (see below).\n\n[github-create]: https://github.com/join (Join GitHub)\n[token]: https://github.com/settings/tokens (GitHub Personal Access Tokens)\n\n### Atomist workspace\n\nYou also need to sign up with Atomist and create a workspace.  Once\nyou have a GitHub.com account, you can sign up with Atomist at\n[https://app.atomist.com/][atm-app].  Once you are registered with\nAtomist, you can create an Atomist workspace and add your GitHub user\nand/or organizations to that workspace.\n\nOnce you have created your Atomist workspace, take note of your\nAtomist workspace/team ID.  You can always find your Atomist workspace\nID on the workspace's settings page or, if you have added the Atomist\napp to Slack, you can send the Atomist bot the message `team` and it\nwill tell you the workspace/team ID.\n\n[atm-app]: https://app.atomist.com/ (Atomist Web Interface)\n\n### Slack\n\nAtomist has a powerful [Slack][slackhq] application, allowing you to\nsee and act on your development activity right in Slack.  Slack is not\na requirement for using Atomist, but if you try it, you'll probably\nlike it.  If you do not have access to a Slack team, it is easy to\n[create your own][slack-team].\n\nIn your Slack team, install the Atomist app in Slack, click the button\nbelow.\n\n<p align=\"center\">\n <a href=\"https://atm.st/2wiDlUe\">\n  <img alt=\"Add to Slack\" height=\"50\" width=\"174\" src=\"https://platform.slack-edge.com/img/add_to_slack@2x.png\" />\n </a>\n</p>\n\nOnce installed, the Atomist bot will guide you through connecting\nAtomist, Slack, and GitHub.\n\n[slackhq]: https://slack.com/ (Slack)\n[slack-team]: https://slack.com/get-started#create (Create a Slack Team)\n\n### Configuration\n\nOnce you have GitHub and Atomist set up, install the Atomist CLI and\nconfigure your local environment.\n\n```console\n$ npm install -g @atomist/automation-client\n$ atomist config\n```\n\nThe second command does two things: records what Atomist\nworkspace/team you want your automations running in and creates a\n[GitHub personal access token][token] with \"repo\" and \"read:org\"\nscopes.\n\nThe script will prompt you for your Atomist workspace/team ID, or you\ncan supply it using the `--team TEAM_ID` command-line option.  You can\nget your Atomist team ID from the settings page for your Atomist\nworkspace or by typing `team` in a DM to the Atomist bot.\n\nThe script will prompt you for your GitHub credentials.  It needs them\nto create the GitHub personal access token.  Atomist does not store\nyour credentials and only writes the generated token to your local\nmachine.\n\nThe Atomist API client authenticates using a GitHub personal access\ntoken.  The Atomist API uses the token to confirm you are who you say\nyou are and are in a GitHub organization connected to the Slack team\nin which you are running the automations.  In addition, it uses the\ntoken when performing any operations that access the GitHub API.\n\n## Running\n\nYou can run this automation using its Docker container, e.g., in\nKubernetes, or locally.\n\n### Docker and Kubernetes\n\nTo download and run the Docker image of this project, run the\nfollowing command\n\n```console\n$ docker run --rm -e ATOMIST_TOKEN=YOUR_TOKEN -e ATOMIST_TEAMS=TEAM_ID \\\n    atomist/automation-seed-ts:VERSION\n```\n\nreplacing `YOUR_TOKEN` and `TEAM_ID` with the token and team ID from\nyour `~/.atomist/client.config.json` created above by the `atomist\nconfig` command and `VERSION` with the [latest release of this\nrepo][latest].  Note that this will not be running any code from your\nlocal machine but the code in the Docker image.\n\nTo run the Docker image in a Kubernetes cluster, you can use the\n[deployment spec](assets/kube/deployment.yaml) from this repository as\na starting point.  Before creating the deployment resource, you will\nneed to create a secret with the following command, replacing `TOKEN`\nand `TEAM_ID` as above.\n\n```console\n$ kubectl create secret generic automation --from-file=$HOME/.atomist/client.config.json\n$ kubectl create -f assets/kube/deployment.yaml\n```\n\n[latest]: https://github.com/atomist/automation-seed-ts/releases/latest\n\n### Locally\n\nYou will need to have [Node.js][node] installed.  To verify that the\nright versions are installed, run:\n\n```console\n$ node -v\nv9.7.1\n$ npm -v\n5.6.0\n```\n\nThe `node` version should be 8 or greater and the `npm` version should\nbe 5 or greater.\n\n[node]: https://nodejs.org/ (Node.js)\n\n#### Cloning the repository and installing dependencies\n\nTo get started run the following commands to clone the project,\ninstall its dependencies, and build the project:\n\n```console\n$ git clone git@github.com:atomist/automation-seed-ts.git\n$ cd automation-seed-ts\n$ npm install\n$ npm run build\n```\n\n#### Starting up the automation-client\n\nYou can run this repository locally, allowing you to change the source\ncode of this project and immediately see the effects in your environment\nwith the following command\n\n```console\n$ npm run autostart\n```\n\nTo run in a more traditional manner, build the project and then simple\nstart it.\n\n```console\n$ npm start\n```\n\n## Using\n\n### Invoking a command handler from Slack\n\nThis project contains the code to create and respond to a simple\n`hello world` bot command.  The code that defines the bot command and\nimplements responding to the command, i.e., the _command handler_, can\nbe found in [`HelloWorld.ts`][hello].  Once you have your local\nautomation client running (the previous step in this guide), you can\ninvoke the command handler by sending the Atomist bot the command as a\nmessage.  Be sure the Atomist bot is in the channel before sending it\nthe message.\n\n```\n/invite @atomist\n@atomist hello world\n```\n\nOnce you've submitted the command in Slack, you'll see the incoming\nand outgoing messages show up in the logs of your locally running\nautomation-client.  Ultimately, you should see the response from the\nbot in Slack.\n\n[hello]: https://github.com/atomist/automation-seed-ts/blob/master/src/commands/HelloWorld.ts (HelloWorld Command Handler)\n\nFeel free to modify the code in the `HelloWorld` command handler,\nNode.js will automatically reload the client, and see what happens!\n\n### Triggering an event handler\n\nWhile command handlers respond to commands you send the Atomist bot,\n_event handlers_ take action when different types of events occur in\nyour development and operations environment.  Some examples of events\nare commits pushed to a repo, or a CI build that fails, or an instance\nof a running service that becomes unhealthy.  Example responses to those\nevents are showing the commits in a Slack message, automatically\nrestarting the build, and triggering a PagerDuty alert, respectively.\n\nThe sample event handler in this project, [NotifyOnPush][nop-handler],\nwill notice when someone pushes new commits to a repository in the\nGitHub organization and send a notice of that push to all Slack\nchannels associated with that repository.\n\nIf you have followed the instructions above and are running these\nautomations against the atomist-playground Slack team and GitHub\norganization, go ahead and edit the [notify-on-push][nop-repo]\nrepository by adding some text to its [README][nop-readme].  Once you\nhave saved your changes, you should see that event appear in the\nconsole logs of your locally running automation client, followed by a\nlog of the actions the event handler is taking.  Once those actions\nare complete, you should see a new message in the\n[`#notify-on-push`][nop-channel] channel in the atomist-playground\nSlack team.\n\n[nop-handler]: https://github.com/atomist/automation-seed-ts/blob/master/src/events/NotifyOnPush.ts (Atomist NotifyOnPush Event Handler)\n[nop-repo]: https://github.com/atomist-playground/notify-on-push (Atomist NotifyOnPush Repository)\n[nop-readme]: https://github.com/atomist-playground/notify-on-push/edit/master/README.md (Edit NotifyOnPush README)\n[nop-channel]: https://atomist-playground.slack.com/messages/C7GNF6743/ (NotifyOnPush Slack Channel)\n\n## Support\n\nGeneral support questions should be discussed in the `#support`\nchannel in our community Slack team\nat [atomist-community.slack.com][slack].\n\nIf you find a problem, please create an [issue][].\n\n[issue]: https://github.com/atomist/automation-seed-ts/issues\n\n## Development\n\nYou will need to install [node][] to build and test this project.\n\n### Build and Test\n\nCommand | Reason\n------- | ------\n`npm install` | install all the required packages\n`npm run build` | lint, compile, and test\n`npm start` | start the Atomist automation client\n`npm run autostart` | run the client, refreshing when files change\n`npm run lint` | run tslint against the TypeScript\n`npm run compile` | compile all TypeScript into JavaScript\n`npm test` | run tests and ensure everything is working\n`npm run autotest` | run tests continuously\n`npm run clean` | remove stray compiled JavaScript files and build directory\n\n### Release\n\nReleases are managed by the [Atomist SDM][atomist-sdm].  Press the\n\"Release\" button in the Atomist dashboard or Slack.\n\n[atomist-sdm]: https://github.com/atomist/atomist-sdm (Atomist Software Delivery Machine)\n\n---\n\nCreated by [Atomist][atomist].\nNeed Help?  [Join our Slack team][slack].\n\n[atomist]: https://atomist.com/ (Atomist - How Teams Deliver Software)\n[slack]: https://join.atomist.com/ (Atomist Community Slack)\n","readmeFilename":"README.md","_id":"@atomist/automation-seed@0.11.0-20180802193437","_npmVersion":"6.3.0","_nodeVersion":"9.11.2","_npmUser":{"name":"atomist","email":"npm@atomist.com"},"dist":{"integrity":"sha512-Ls4UcRlduYCi3N2Vai7QXncm78R7om2Idkbznscxjk4x8U+9vkbvkjqnyb7NQBC+b+V30YlCPKKVWd8U11YdOA==","shasum":"0bc7435b7733f7a625bb4c2edad8d29e91fa5e99","tarball":"https://registry.npmjs.org/@atomist/automation-seed/-/automation-seed-0.11.0-20180802193437.tgz","fileCount":29,"unpackedSize":122614,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbY12LCRA9TVsSAnZWagAAqUQP/33ZI28dPXAfR+W1j1Z9\nhJ2ASqiPHnImAsHUs0rg9g559PhCcGgQwNmU35jBGhVNZjJFbOkBNsfUySzd\nfJB6B7EsF8TT/KWCOKc/NGTzX0s5t953LjATZjI5b/gObO0ZmMVHUjQ6ykel\n/D+x8VGJ3JIzUOsDkSc/vNlVqkhkJvOkC/05rjIzBQFPIGVDVha4fpw48AQe\nd7clkDzBRIc7S8xAd5bhACLgTSPA1I107tp5SBmkukN3ctIppY1rncRhiU/c\nA5oFwu0gEpSgOPrZDv3Youpq7+QDmUB/I0IKwxZSUVTWFPjZfFdE29g/204K\ne4zsOCjDWS/oov3s592ohkKblI5r6XEge8fNT56L0yMc6HJW7sCdcAnZLLGo\nJyGVAQl8jVLZq+EMkiTk5/EI9lyc0xeveLd34rnNPbuAp7ylrmPpvz7dhTa+\nq83MSLdv8kDNALXipmmootccD/iMoLFXQ0dhVHUciV8an5xve4pK03XdMHbP\nMCPUxlYGJGUVd5Xy7808ywvGCDvd0wKgp+aFMbHRDYchPgodFZPiRyQqFvl5\nLz0eUm6Ob24W3jt3zg6EpJ9MJT17lSeBfIEKWlLr8mL+f08xvpmTJYtSwWtG\nxHRkTK/x0YQfLQCqKAJ2PB+JZx/gV6SsWLRMK+gVV9tpX+b2JqQxvehAJOz6\n7UPC\r\n=frAr\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFowzfIftQtkR7+fhUoxLvupWqyyGxKW11WchkHqZ9QXAiEAsEcSL94epGKUQxLz17UYop8RK2gn0zF8inmI3pS9DnA="}]},"maintainers":[{"name":"atomist","email":"npm@atomist.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/automation-seed_0.11.0-20180802193437_1533238667416_0.06928919968141845"},"_hasShrinkwrap":false},"0.11.0-20180804024747":{"name":"@atomist/automation-seed","version":"0.11.0-20180804024747","description":"Atomist automation client seed project","author":{"name":"Atomist"},"license":"Apache-2.0","repository":{"type":"git","url":"git+https://github.com/atomist/automation-seed-ts.git"},"homepage":"https://github.com/atomist/automation-seed-ts#readme","bugs":{"url":"https://github.com/atomist/automation-seed-ts/issues"},"keywords":["atomist","automation","seed"],"main":"./index.js","types":"./index.d.ts","dependencies":{"@atomist/automation-client":"^0.19.1","@types/app-root-path":"^1.2.4","app-root-path":"^2.0.1"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^9.4.1","@types/power-assert":"^1.4.29","espower-typescript":"^8.1.3","graphql-code-generator":"^0.8.14","mocha":"^5.2.0","nodemon":"^1.14.12","npm-run-all":"^4.1.2","power-assert":"^1.4.4","rimraf":"^2.6.2","supervisor":"^0.12.0","ts-node":"^4.1.0","tslint":"^5.11.0","typedoc":"^0.11.1","typescript":"^2.9.2","typescript-formatter":"^7.2.2"},"directories":{"test":"test"},"scripts":{"autostart":"nodemon --watch index.ts,lib --ext ts --exec ts-node -- node_modules/@atomist/automation-client/start.client.js","autotest":"supervisor --watch index.ts,lib,test --extensions ts --no-restart-on exit --quiet --exec npm -- test","build":"npm-run-all compile test lint doc","clean":"npm-run-all clean:compile clean:doc clean:run","clean:compile":"rimraf build git-info.json \"index.{d.ts,js*}\" \"{lib,test}/**/*.{d.ts,js*}\" lib/typings/types.ts","clean:dist":"npm-run-all clean clean:npm","clean:doc":"rimraf doc","clean:npm":"rimraf node_modules","clean:run":"rimraf *-v8.log profile.txt log","compile":"npm-run-all git:info gql:gen compile:ts","compile:ts":"tsc --project .","doc":"typedoc --mode modules --exclude \"**/*.d.ts\" --out doc index.ts lib","fmt":"tsfmt --replace","git:info":"atomist git","gql:gen":"atomist gql-gen --no-install \"lib/**/*.graphql\"","lint":"tslint --format verbose --project . --exclude \"{build,node_modules}/**\" --exclude \"**/*.d.ts\" \"**/*.ts\"","lint:fix":"npm run lint -- --fix","start":"atomist start --no-install --no-compile","test":"mocha --require espower-typescript/guess \"test/**/*.test.ts\"","test:one":"mocha --require espower-typescript/guess \"test/**/${TEST:-*.test.ts}\"","typedoc":"npm run doc"},"engines":{"node":"9.x.x","npm":"6.x.x"},"gitHead":"e6d491031b3d1d81f25b7001981c948e1e37ee14","readme":"# @atomist/automation-seed\n\n[![npm version](https://badge.fury.io/js/%40atomist%2Fautomation-seed.svg)](https://badge.fury.io/js/%40atomist%2Fautomation-seed)\n\nThis repository contains examples demonstrating use of\nthe [Atomist][atomist] API.  You will find examples illustrating:\n\n-   Creating bot commands using _command handlers_\n-   Responding to DevOps events, e.g., commits pushed to a repository,\n    using _event handlers_\n\nThese examples use the [`@atomist/automation-client`][client] node\nmodule to implement a local client that connects to the Atomist API.\n\n[client]: https://github.com/atomist/automation-client-ts (@atomist/automation-client Node Module)\n\n## Prerequisites\n\nSee the [Atomist getting started][enrollment] documentation.\n\n[enrollment]: https://github.com/atomist/welcome/blob/master/enroll.md (Atomist - Getting Started)\n\nBelow are brief instructions on how to get started running this\nproject yourself.  If you just want to use the core functionality of\nAtomist, see the [Atomist documentation][docs].  For more detailed\ninformation on developing automations, see the [Atomist Developer\nGuide][dev].\n\n[docs]: https://docs.atomist.com/ (Atomist User Guide)\n[dev]: https://docs.atomist.com/developer/ (Atomist Developer Guide)\n\n### GitHub account\n\nYou must have a GitHub account, either GitHub.com or GitHub Enterprise\n(GHE).  If you want to use Atomist with GHE, please [contact\nAtomist](mailto:support@atomist.com).  The remainder of these\ninstructions assume you have a GitHub.com account.  If you do not\nalready have a GitHub.com account, you can [create\none][github-create].\n\nTo run automations, you will need a GitHub [personal access\ntoken][token] with \"read:org\" scope.  You can create one yourself or\nuse the Atomist CLI to do it for you (see below).\n\n[github-create]: https://github.com/join (Join GitHub)\n[token]: https://github.com/settings/tokens (GitHub Personal Access Tokens)\n\n### Atomist workspace\n\nYou also need to sign up with Atomist and create a workspace.  Once\nyou have a GitHub.com account, you can sign up with Atomist at\n[https://app.atomist.com/][atm-app].  Once you are registered with\nAtomist, you can create an Atomist workspace and add your GitHub user\nand/or organizations to that workspace.\n\nOnce you have created your Atomist workspace, take note of your\nAtomist workspace/team ID.  You can always find your Atomist workspace\nID on the workspace's settings page or, if you have added the Atomist\napp to Slack, you can send the Atomist bot the message `team` and it\nwill tell you the workspace/team ID.\n\n[atm-app]: https://app.atomist.com/ (Atomist Web Interface)\n\n### Slack\n\nAtomist has a powerful [Slack][slackhq] application, allowing you to\nsee and act on your development activity right in Slack.  Slack is not\na requirement for using Atomist, but if you try it, you'll probably\nlike it.  If you do not have access to a Slack team, it is easy to\n[create your own][slack-team].\n\nIn your Slack team, install the Atomist app in Slack, click the button\nbelow.\n\n<p align=\"center\">\n <a href=\"https://atm.st/2wiDlUe\">\n  <img alt=\"Add to Slack\" height=\"50\" width=\"174\" src=\"https://platform.slack-edge.com/img/add_to_slack@2x.png\" />\n </a>\n</p>\n\nOnce installed, the Atomist bot will guide you through connecting\nAtomist, Slack, and GitHub.\n\n[slackhq]: https://slack.com/ (Slack)\n[slack-team]: https://slack.com/get-started#create (Create a Slack Team)\n\n### Configuration\n\nOnce you have GitHub and Atomist set up, install the Atomist CLI and\nconfigure your local environment.\n\n```console\n$ npm install -g @atomist/automation-client\n$ atomist config\n```\n\nThe second command does two things: records what Atomist\nworkspace/team you want your automations running in and creates a\n[GitHub personal access token][token] with \"repo\" and \"read:org\"\nscopes.\n\nThe script will prompt you for your Atomist workspace/team ID, or you\ncan supply it using the `--team TEAM_ID` command-line option.  You can\nget your Atomist team ID from the settings page for your Atomist\nworkspace or by typing `team` in a DM to the Atomist bot.\n\nThe script will prompt you for your GitHub credentials.  It needs them\nto create the GitHub personal access token.  Atomist does not store\nyour credentials and only writes the generated token to your local\nmachine.\n\nThe Atomist API client authenticates using a GitHub personal access\ntoken.  The Atomist API uses the token to confirm you are who you say\nyou are and are in a GitHub organization connected to the Slack team\nin which you are running the automations.  In addition, it uses the\ntoken when performing any operations that access the GitHub API.\n\n## Running\n\nYou can run this automation using its Docker container, e.g., in\nKubernetes, or locally.\n\n### Docker and Kubernetes\n\nTo download and run the Docker image of this project, run the\nfollowing command\n\n```console\n$ docker run --rm -e ATOMIST_TOKEN=YOUR_TOKEN -e ATOMIST_TEAMS=TEAM_ID \\\n    atomist/automation-seed-ts:VERSION\n```\n\nreplacing `YOUR_TOKEN` and `TEAM_ID` with the token and team ID from\nyour `~/.atomist/client.config.json` created above by the `atomist\nconfig` command and `VERSION` with the [latest release of this\nrepo][latest].  Note that this will not be running any code from your\nlocal machine but the code in the Docker image.\n\nTo run the Docker image in a Kubernetes cluster, you can use the\n[deployment spec](assets/kube/deployment.yaml) from this repository as\na starting point.  Before creating the deployment resource, you will\nneed to create a secret with the following command, replacing `TOKEN`\nand `TEAM_ID` as above.\n\n```console\n$ kubectl create secret generic automation --from-file=$HOME/.atomist/client.config.json\n$ kubectl create -f assets/kube/deployment.yaml\n```\n\n[latest]: https://github.com/atomist/automation-seed-ts/releases/latest\n\n### Locally\n\nYou will need to have [Node.js][node] installed.  To verify that the\nright versions are installed, run:\n\n```console\n$ node -v\nv9.7.1\n$ npm -v\n5.6.0\n```\n\nThe `node` version should be 8 or greater and the `npm` version should\nbe 5 or greater.\n\n[node]: https://nodejs.org/ (Node.js)\n\n#### Cloning the repository and installing dependencies\n\nTo get started run the following commands to clone the project,\ninstall its dependencies, and build the project:\n\n```console\n$ git clone git@github.com:atomist/automation-seed-ts.git\n$ cd automation-seed-ts\n$ npm install\n$ npm run build\n```\n\n#### Starting up the automation-client\n\nYou can run this repository locally, allowing you to change the source\ncode of this project and immediately see the effects in your environment\nwith the following command\n\n```console\n$ npm run autostart\n```\n\nTo run in a more traditional manner, build the project and then simple\nstart it.\n\n```console\n$ npm start\n```\n\n## Using\n\n### Invoking a command handler from Slack\n\nThis project contains the code to create and respond to a simple\n`hello world` bot command.  The code that defines the bot command and\nimplements responding to the command, i.e., the _command handler_, can\nbe found in [`HelloWorld.ts`][hello].  Once you have your local\nautomation client running (the previous step in this guide), you can\ninvoke the command handler by sending the Atomist bot the command as a\nmessage.  Be sure the Atomist bot is in the channel before sending it\nthe message.\n\n```\n/invite @atomist\n@atomist hello world\n```\n\nOnce you've submitted the command in Slack, you'll see the incoming\nand outgoing messages show up in the logs of your locally running\nautomation-client.  Ultimately, you should see the response from the\nbot in Slack.\n\n[hello]: https://github.com/atomist/automation-seed-ts/blob/master/src/commands/HelloWorld.ts (HelloWorld Command Handler)\n\nFeel free to modify the code in the `HelloWorld` command handler,\nNode.js will automatically reload the client, and see what happens!\n\n### Triggering an event handler\n\nWhile command handlers respond to commands you send the Atomist bot,\n_event handlers_ take action when different types of events occur in\nyour development and operations environment.  Some examples of events\nare commits pushed to a repo, or a CI build that fails, or an instance\nof a running service that becomes unhealthy.  Example responses to those\nevents are showing the commits in a Slack message, automatically\nrestarting the build, and triggering a PagerDuty alert, respectively.\n\nThe sample event handler in this project, [NotifyOnPush][nop-handler],\nwill notice when someone pushes new commits to a repository in the\nGitHub organization and send a notice of that push to all Slack\nchannels associated with that repository.\n\nIf you have followed the instructions above and are running these\nautomations against the atomist-playground Slack team and GitHub\norganization, go ahead and edit the [notify-on-push][nop-repo]\nrepository by adding some text to its [README][nop-readme].  Once you\nhave saved your changes, you should see that event appear in the\nconsole logs of your locally running automation client, followed by a\nlog of the actions the event handler is taking.  Once those actions\nare complete, you should see a new message in the\n[`#notify-on-push`][nop-channel] channel in the atomist-playground\nSlack team.\n\n[nop-handler]: https://github.com/atomist/automation-seed-ts/blob/master/src/events/NotifyOnPush.ts (Atomist NotifyOnPush Event Handler)\n[nop-repo]: https://github.com/atomist-playground/notify-on-push (Atomist NotifyOnPush Repository)\n[nop-readme]: https://github.com/atomist-playground/notify-on-push/edit/master/README.md (Edit NotifyOnPush README)\n[nop-channel]: https://atomist-playground.slack.com/messages/C7GNF6743/ (NotifyOnPush Slack Channel)\n\n## Support\n\nGeneral support questions should be discussed in the `#support`\nchannel in our community Slack team\nat [atomist-community.slack.com][slack].\n\nIf you find a problem, please create an [issue][].\n\n[issue]: https://github.com/atomist/automation-seed-ts/issues\n\n## Development\n\nYou will need to install [node][] to build and test this project.\n\n### Build and Test\n\nCommand | Reason\n------- | ------\n`npm install` | install all the required packages\n`npm run build` | lint, compile, and test\n`npm start` | start the Atomist automation client\n`npm run autostart` | run the client, refreshing when files change\n`npm run lint` | run tslint against the TypeScript\n`npm run compile` | compile all TypeScript into JavaScript\n`npm test` | run tests and ensure everything is working\n`npm run autotest` | run tests continuously\n`npm run clean` | remove stray compiled JavaScript files and build directory\n\n### Release\n\nReleases are managed by the [Atomist SDM][atomist-sdm].  Press the\n\"Release\" button in the Atomist dashboard or Slack.\n\n[atomist-sdm]: https://github.com/atomist/atomist-sdm (Atomist Software Delivery Machine)\n\n---\n\nCreated by [Atomist][atomist].\nNeed Help?  [Join our Slack team][slack].\n\n[atomist]: https://atomist.com/ (Atomist - How Teams Deliver Software)\n[slack]: https://join.atomist.com/ (Atomist Community Slack)\n","readmeFilename":"README.md","_id":"@atomist/automation-seed@0.11.0-20180804024747","_npmVersion":"6.3.0","_nodeVersion":"9.11.2","_npmUser":{"name":"atomist","email":"npm@atomist.com"},"dist":{"integrity":"sha512-D1hBt7g1ptxCFBkFVszeEGW8l3u/l7lQm3uOg6xog87ttbodA8vLyiEqpS7Pnx0OGAIeLBiVWc34seDtSosTvA==","shasum":"f08ef66042a72b68e07555c021ec4c6a4e88c816","tarball":"https://registry.npmjs.org/@atomist/automation-seed/-/automation-seed-0.11.0-20180804024747.tgz","fileCount":29,"unpackedSize":122739,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbZRR5CRA9TVsSAnZWagAALaUQAKEUuLLR5pgSR1tYu0d+\n/txRDVpEtJhvOAXpluN1+U+T2btOAmDcpMHwTaZ8q4D5FXf9cYNrZA97kHjM\nmr+ZoyNnhT+IVrcIG9XJ06SBqR7+6E06r9BjQ3YIwnpJVJMUqCSPQhJnR4H6\nVqfcdWzcNfXfww03dxH4GASqq82IDogG0ZPrA8EAzapbTU9R7kA5Ace27zFD\njS33N/YlNo1jAFQuz/NQ7OX+f2mObn5llYlGU5zMRhsiVbyuwYEHFW9phghK\nYdlQhFSdAPT3EklgS8xn62e/wCDwA0yY46ChT0+qShYBrTDyasTkK3eAfIR/\nvNysXiE2MGxaNZDgDvKEY3ZlEaXq4OpYMjsUMYnnemeShePNLLbs2pKTl0Hj\ndXQX+uV8NbHryv1jNUWBp/iZ/bZFvit9XErLiGrKoD+8jciF5eyhK3g2uZTv\nBRYdj4bjT5vGXDhlK4wq6nBCVRunwiyD1WmEHJUyobgrrMkFvK7ayTamvKSC\nSVp1IAtExiM31RM5ogOCoJwbiCmvm+EbVmnOqfK6EOaogsJAhWo3qhg3ccjL\nENDYeXO3Lf2x7PXZCzESG1zU5lUcTkQ+TWhR+nl3Cm/ajV13LSK+p3UiI5xs\nP7jdt7A/VOs+Gg7jvCqqd4/ReWfonJ6tuLXkKyyto0hX4VrmmANBRDAPIMuv\n8MO3\r\n=hxc/\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCq5OmwjKicBeXBJ4O1jQn86ST8UuKb5O+hf0qlaKGwYwIhAPSmAUU6oxlGeAlZx3/vvbz9j19+sCli4S9JOjLOZu83"}]},"maintainers":[{"name":"atomist","email":"npm@atomist.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/automation-seed_0.11.0-20180804024747_1533351033247_0.9320421678881428"},"_hasShrinkwrap":false},"0.11.0-20180807184806":{"name":"@atomist/automation-seed","version":"0.11.0-20180807184806","description":"Atomist automation client seed project","author":{"name":"Atomist"},"license":"Apache-2.0","repository":{"type":"git","url":"git+https://github.com/atomist/automation-seed-ts.git"},"homepage":"https://github.com/atomist/automation-seed-ts#readme","bugs":{"url":"https://github.com/atomist/automation-seed-ts/issues"},"keywords":["atomist","automation","seed"],"main":"./index.js","types":"./index.d.ts","dependencies":{"@atomist/automation-client":"^0.19.1","@types/app-root-path":"^1.2.4","app-root-path":"^2.0.1"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^9.4.1","@types/power-assert":"^1.4.29","espower-typescript":"^8.1.3","graphql-code-generator":"^0.8.14","mocha":"^5.2.0","nodemon":"^1.18.3","npm-run-all":"^4.1.2","power-assert":"^1.4.4","rimraf":"^2.6.2","supervisor":"^0.12.0","ts-node":"^7.0.0","tslint":"^5.11.0","typedoc":"^0.11.1","typescript":"^2.9.2","typescript-formatter":"^7.2.2"},"directories":{"test":"test"},"scripts":{"autostart":"nodemon --watch index.ts,lib --ext ts --exec ts-node -- node_modules/@atomist/automation-client/start.client.js","autotest":"supervisor --watch index.ts,lib,test --extensions ts --no-restart-on exit --quiet --exec npm -- test","build":"npm-run-all compile test lint doc","clean":"npm-run-all clean:compile clean:doc clean:run","clean:compile":"rimraf build git-info.json \"index.{d.ts,js*}\" \"{lib,test}/**/*.{d.ts,js*}\" lib/typings/types.ts","clean:dist":"npm-run-all clean clean:npm","clean:doc":"rimraf doc","clean:npm":"rimraf node_modules","clean:run":"rimraf *-v8.log profile.txt log","compile":"npm-run-all git:info gql:gen compile:ts","compile:ts":"tsc --project .","doc":"typedoc --mode modules --exclude \"**/*.d.ts\" --out doc index.ts lib","fmt":"tsfmt --replace","git:info":"atomist git","gql:gen":"atomist gql-gen --no-install \"lib/**/*.graphql\"","lint":"tslint --format verbose --project . --exclude \"{build,node_modules}/**\" --exclude \"**/*.d.ts\" \"**/*.ts\"","lint:fix":"npm run lint -- --fix","start":"atomist start --no-install --no-compile","test":"mocha --require espower-typescript/guess \"test/**/*.test.ts\"","test:one":"mocha --require espower-typescript/guess \"test/**/${TEST:-*.test.ts}\"","typedoc":"npm run doc"},"engines":{"node":">=8.0.0","npm":">=5.0.0"},"gitHead":"46982fecab9d48fad8d799ce83d1333063627bcb","readme":"# @atomist/automation-seed\n\n[![npm version](https://badge.fury.io/js/%40atomist%2Fautomation-seed.svg)](https://badge.fury.io/js/%40atomist%2Fautomation-seed)\n\nThis repository contains examples demonstrating use of\nthe [Atomist][atomist] API.  You will find examples illustrating:\n\n-   Creating bot commands using _command handlers_\n-   Responding to DevOps events, e.g., commits pushed to a repository,\n    using _event handlers_\n\nThese examples use the [`@atomist/automation-client`][client] node\nmodule to implement a local client that connects to the Atomist API.\n\n[client]: https://github.com/atomist/automation-client-ts (@atomist/automation-client Node Module)\n\n## Prerequisites\n\nSee the [Atomist getting started][enrollment] documentation.\n\n[enrollment]: https://github.com/atomist/welcome/blob/master/enroll.md (Atomist - Getting Started)\n\nBelow are brief instructions on how to get started running this\nproject yourself.  If you just want to use the core functionality of\nAtomist, see the [Atomist documentation][docs].  For more detailed\ninformation on developing automations, see the [Atomist Developer\nGuide][dev].\n\n[docs]: https://docs.atomist.com/ (Atomist User Guide)\n[dev]: https://docs.atomist.com/developer/ (Atomist Developer Guide)\n\n### GitHub account\n\nYou must have a GitHub account, either GitHub.com or GitHub Enterprise\n(GHE).  If you want to use Atomist with GHE, please [contact\nAtomist](mailto:support@atomist.com).  The remainder of these\ninstructions assume you have a GitHub.com account.  If you do not\nalready have a GitHub.com account, you can [create\none][github-create].\n\nTo run automations, you will need a GitHub [personal access\ntoken][token] with \"read:org\" scope.  You can create one yourself or\nuse the Atomist CLI to do it for you (see below).\n\n[github-create]: https://github.com/join (Join GitHub)\n[token]: https://github.com/settings/tokens (GitHub Personal Access Tokens)\n\n### Atomist workspace\n\nYou also need to sign up with Atomist and create a workspace.  Once\nyou have a GitHub.com account, you can sign up with Atomist at\n[https://app.atomist.com/][atm-app].  Once you are registered with\nAtomist, you can create an Atomist workspace and add your GitHub user\nand/or organizations to that workspace.\n\nOnce you have created your Atomist workspace, take note of your\nAtomist workspace/team ID.  You can always find your Atomist workspace\nID on the workspace's settings page or, if you have added the Atomist\napp to Slack, you can send the Atomist bot the message `team` and it\nwill tell you the workspace/team ID.\n\n[atm-app]: https://app.atomist.com/ (Atomist Web Interface)\n\n### Slack\n\nAtomist has a powerful [Slack][slackhq] application, allowing you to\nsee and act on your development activity right in Slack.  Slack is not\na requirement for using Atomist, but if you try it, you'll probably\nlike it.  If you do not have access to a Slack team, it is easy to\n[create your own][slack-team].\n\nIn your Slack team, install the Atomist app in Slack, click the button\nbelow.\n\n<p align=\"center\">\n <a href=\"https://atm.st/2wiDlUe\">\n  <img alt=\"Add to Slack\" height=\"50\" width=\"174\" src=\"https://platform.slack-edge.com/img/add_to_slack@2x.png\" />\n </a>\n</p>\n\nOnce installed, the Atomist bot will guide you through connecting\nAtomist, Slack, and GitHub.\n\n[slackhq]: https://slack.com/ (Slack)\n[slack-team]: https://slack.com/get-started#create (Create a Slack Team)\n\n### Configuration\n\nOnce you have GitHub and Atomist set up, install the Atomist CLI and\nconfigure your local environment.\n\n```console\n$ npm install -g @atomist/automation-client\n$ atomist config\n```\n\nThe second command does two things: records what Atomist\nworkspace/team you want your automations running in and creates a\n[GitHub personal access token][token] with \"repo\" and \"read:org\"\nscopes.\n\nThe script will prompt you for your Atomist workspace/team ID, or you\ncan supply it using the `--team TEAM_ID` command-line option.  You can\nget your Atomist team ID from the settings page for your Atomist\nworkspace or by typing `team` in a DM to the Atomist bot.\n\nThe script will prompt you for your GitHub credentials.  It needs them\nto create the GitHub personal access token.  Atomist does not store\nyour credentials and only writes the generated token to your local\nmachine.\n\nThe Atomist API client authenticates using a GitHub personal access\ntoken.  The Atomist API uses the token to confirm you are who you say\nyou are and are in a GitHub organization connected to the Slack team\nin which you are running the automations.  In addition, it uses the\ntoken when performing any operations that access the GitHub API.\n\n## Running\n\nYou can run this automation using its Docker container, e.g., in\nKubernetes, or locally.\n\n### Docker and Kubernetes\n\nTo download and run the Docker image of this project, run the\nfollowing command\n\n```console\n$ docker run --rm -e ATOMIST_TOKEN=YOUR_TOKEN -e ATOMIST_TEAMS=TEAM_ID \\\n    atomist/automation-seed-ts:VERSION\n```\n\nreplacing `YOUR_TOKEN` and `TEAM_ID` with the token and team ID from\nyour `~/.atomist/client.config.json` created above by the `atomist\nconfig` command and `VERSION` with the [latest release of this\nrepo][latest].  Note that this will not be running any code from your\nlocal machine but the code in the Docker image.\n\nTo run the Docker image in a Kubernetes cluster, you can use the\n[deployment spec](assets/kube/deployment.yaml) from this repository as\na starting point.  Before creating the deployment resource, you will\nneed to create a secret with the following command, replacing `TOKEN`\nand `TEAM_ID` as above.\n\n```console\n$ kubectl create secret generic automation --from-file=$HOME/.atomist/client.config.json\n$ kubectl create -f assets/kube/deployment.yaml\n```\n\n[latest]: https://github.com/atomist/automation-seed-ts/releases/latest\n\n### Locally\n\nYou will need to have [Node.js][node] installed.  To verify that the\nright versions are installed, run:\n\n```console\n$ node -v\nv9.7.1\n$ npm -v\n5.6.0\n```\n\nThe `node` version should be 8 or greater and the `npm` version should\nbe 5 or greater.\n\n[node]: https://nodejs.org/ (Node.js)\n\n#### Cloning the repository and installing dependencies\n\nTo get started run the following commands to clone the project,\ninstall its dependencies, and build the project:\n\n```console\n$ git clone git@github.com:atomist/automation-seed-ts.git\n$ cd automation-seed-ts\n$ npm install\n$ npm run build\n```\n\n#### Starting up the automation-client\n\nYou can run this repository locally, allowing you to change the source\ncode of this project and immediately see the effects in your environment\nwith the following command\n\n```console\n$ npm run autostart\n```\n\nTo run in a more traditional manner, build the project and then simple\nstart it.\n\n```console\n$ npm start\n```\n\n## Using\n\n### Invoking a command handler from Slack\n\nThis project contains the code to create and respond to a simple\n`hello world` bot command.  The code that defines the bot command and\nimplements responding to the command, i.e., the _command handler_, can\nbe found in [`HelloWorld.ts`][hello].  Once you have your local\nautomation client running (the previous step in this guide), you can\ninvoke the command handler by sending the Atomist bot the command as a\nmessage.  Be sure the Atomist bot is in the channel before sending it\nthe message.\n\n```\n/invite @atomist\n@atomist hello world\n```\n\nOnce you've submitted the command in Slack, you'll see the incoming\nand outgoing messages show up in the logs of your locally running\nautomation-client.  Ultimately, you should see the response from the\nbot in Slack.\n\n[hello]: https://github.com/atomist/automation-seed-ts/blob/master/src/commands/HelloWorld.ts (HelloWorld Command Handler)\n\nFeel free to modify the code in the `HelloWorld` command handler,\nNode.js will automatically reload the client, and see what happens!\n\n### Triggering an event handler\n\nWhile command handlers respond to commands you send the Atomist bot,\n_event handlers_ take action when different types of events occur in\nyour development and operations environment.  Some examples of events\nare commits pushed to a repo, or a CI build that fails, or an instance\nof a running service that becomes unhealthy.  Example responses to those\nevents are showing the commits in a Slack message, automatically\nrestarting the build, and triggering a PagerDuty alert, respectively.\n\nThe sample event handler in this project, [NotifyOnPush][nop-handler],\nwill notice when someone pushes new commits to a repository in the\nGitHub organization and send a notice of that push to all Slack\nchannels associated with that repository.\n\nIf you have followed the instructions above and are running these\nautomations against the atomist-playground Slack team and GitHub\norganization, go ahead and edit the [notify-on-push][nop-repo]\nrepository by adding some text to its [README][nop-readme].  Once you\nhave saved your changes, you should see that event appear in the\nconsole logs of your locally running automation client, followed by a\nlog of the actions the event handler is taking.  Once those actions\nare complete, you should see a new message in the\n[`#notify-on-push`][nop-channel] channel in the atomist-playground\nSlack team.\n\n[nop-handler]: https://github.com/atomist/automation-seed-ts/blob/master/src/events/NotifyOnPush.ts (Atomist NotifyOnPush Event Handler)\n[nop-repo]: https://github.com/atomist-playground/notify-on-push (Atomist NotifyOnPush Repository)\n[nop-readme]: https://github.com/atomist-playground/notify-on-push/edit/master/README.md (Edit NotifyOnPush README)\n[nop-channel]: https://atomist-playground.slack.com/messages/C7GNF6743/ (NotifyOnPush Slack Channel)\n\n## Support\n\nGeneral support questions should be discussed in the `#support`\nchannel in our community Slack team\nat [atomist-community.slack.com][slack].\n\nIf you find a problem, please create an [issue][].\n\n[issue]: https://github.com/atomist/automation-seed-ts/issues\n\n## Development\n\nYou will need to install [node][] to build and test this project.\n\n### Build and Test\n\nCommand | Reason\n------- | ------\n`npm install` | install all the required packages\n`npm run build` | lint, compile, and test\n`npm start` | start the Atomist automation client\n`npm run autostart` | run the client, refreshing when files change\n`npm run lint` | run tslint against the TypeScript\n`npm run compile` | compile all TypeScript into JavaScript\n`npm test` | run tests and ensure everything is working\n`npm run autotest` | run tests continuously\n`npm run clean` | remove stray compiled JavaScript files and build directory\n\n### Release\n\nReleases are managed by the [Atomist SDM][atomist-sdm].  Press the\n\"Release\" button in the Atomist dashboard or Slack.\n\n[atomist-sdm]: https://github.com/atomist/atomist-sdm (Atomist Software Delivery Machine)\n\n---\n\nCreated by [Atomist][atomist].\nNeed Help?  [Join our Slack team][slack].\n\n[atomist]: https://atomist.com/ (Atomist - How Teams Deliver Software)\n[slack]: https://join.atomist.com/ (Atomist Community Slack)\n","readmeFilename":"README.md","_id":"@atomist/automation-seed@0.11.0-20180807184806","_npmVersion":"6.3.0","_nodeVersion":"9.11.2","_npmUser":{"name":"atomist","email":"npm@atomist.com"},"dist":{"integrity":"sha512-tjrYXGvHNIkxfCd6zlV1xNR7WAoONEJHLKI1OihWc8Nk+/jM6fdJD0Tqv22g6uuG+vsPq5VJ/gm3Myu5Lv8W0A==","shasum":"68236ddfdc16a9220b4437479d35c7867c62a4b0","tarball":"https://registry.npmjs.org/@atomist/automation-seed/-/automation-seed-0.11.0-20180807184806.tgz","fileCount":29,"unpackedSize":122742,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbaeolCRA9TVsSAnZWagAA42kP/3liEnFtGIYYG65Eaac5\nDwtFzZT3TPszjv19rBYCskJRnjrfTHSmAAAEv5H4J+uj2JAmBQzYB8ccDgjo\njNlZNsf/mjaXF5SEdlWJV582vleDzC9hy1n8nNsxRFWFP1jNvvHRkwPFbwsZ\nULZXnDsi1FHhk4buFlMtosChj/uSCen6FMwER+XMhlgriWN4j5GrszpvtzYS\n0foGt7avqPQc7Sn78MKAzFI19bjsAnDdvQ3T2OmfMchtp2I+Ql+w6vSVRIJk\nItE2rV3mObOvosL59ib6okltUfm4jsnh+j9KM1yOZg2c78nqtrMdobwz55nK\nkggJ2SDRme5l8xJmfnI6y6LKrDBYm9HeWi4pX8G5Trp4LfJINFwKCGPUSvtH\nyDm1IsV9HiNfNIw2tF1NsizoXoSk2XCWYParsuLcwREaqQjYREZQCDtVUqxj\nVgZUnZMEcpo6Tim4CpmE9H20srSzMWqBELw5BNjO/qLbPCbSvkGUu+CHv3lZ\nzaz8eTaBW3fq1BSzg15YCr9N+rfoh58T2Q3wAPWuAIQvL3BKHDPzKPT1lhF7\nOTJj7q62YcLp9Lc/GxRNOFsXYSUXA/bCjTdthZrTxSHFje+xOpBJE2oQ0+fw\nzbS5pWcThl1vZpE70LkP/E0MdT4wolWAbWwbmE7BvVNc0RsGxCMkikVDSITf\nVR4h\r\n=xdiT\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDvFH60c+HitRL6KNnf5dMLZ8/9zJ1E/C71W3McJGkr1AiB50y1LxHqNyDegg6dl12qwdGTCkmT0bMOm4gs+54EBTg=="}]},"maintainers":[{"name":"atomist","email":"npm@atomist.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/automation-seed_0.11.0-20180807184806_1533667877266_0.05990284447169403"},"_hasShrinkwrap":false},"0.11.0-20180808112529":{"name":"@atomist/automation-seed","version":"0.11.0-20180808112529","description":"Atomist automation client seed project","author":{"name":"Atomist"},"license":"Apache-2.0","repository":{"type":"git","url":"git+https://github.com/atomist/automation-seed-ts.git"},"homepage":"https://github.com/atomist/automation-seed-ts#readme","bugs":{"url":"https://github.com/atomist/automation-seed-ts/issues"},"keywords":["atomist","automation","seed"],"main":"./index.js","types":"./index.d.ts","dependencies":{"@atomist/automation-client":"^0.19.1","@types/app-root-path":"^1.2.4","app-root-path":"^2.0.1"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^9.4.1","@types/power-assert":"^1.4.29","espower-typescript":"^8.1.3","graphql-code-generator":"^0.8.14","mocha":"^5.2.0","nodemon":"^1.18.3","npm-run-all":"^4.1.2","power-assert":"^1.4.4","rimraf":"^2.6.2","supervisor":"^0.12.0","ts-node":"^7.0.0","tslint":"^5.11.0","typedoc":"^0.11.1","typescript":"^2.9.2","typescript-formatter":"^7.2.2"},"directories":{"test":"test"},"scripts":{"autostart":"nodemon --watch index.ts,lib --ext ts --exec ts-node -- node_modules/@atomist/automation-client/start.client.js","autotest":"supervisor --watch index.ts,lib,test --extensions ts --no-restart-on exit --quiet --exec npm -- test","build":"npm-run-all compile test lint doc","clean":"npm-run-all clean:compile clean:doc clean:run","clean:compile":"rimraf build git-info.json \"index.{d.ts,js*}\" \"{lib,test}/**/*.{d.ts,js*}\" lib/typings/types.ts","clean:dist":"npm-run-all clean clean:npm","clean:doc":"rimraf doc","clean:npm":"rimraf node_modules","clean:run":"rimraf *-v8.log profile.txt log","compile":"npm-run-all git:info gql:gen compile:ts","compile:ts":"tsc --project .","doc":"typedoc --mode modules --exclude \"**/*.d.ts\" --out doc index.ts lib","fmt":"tsfmt --replace","git:info":"atomist git","gql:gen":"atomist gql-gen --no-install \"lib/**/*.graphql\"","lint":"tslint --format verbose --project . --exclude \"{build,node_modules}/**\" --exclude \"**/*.d.ts\" \"**/*.ts\"","lint:fix":"npm run lint -- --fix","start":"atomist start --no-install --no-compile","test":"mocha --require espower-typescript/guess \"test/**/*.test.ts\"","test:one":"mocha --require espower-typescript/guess \"test/**/${TEST:-*.test.ts}\"","typedoc":"npm run doc"},"engines":{"node":">=8.0.0","npm":">=5.0.0"},"gitHead":"eac1a0d777dfa9abf7a838f85ac8d72f8b450330","readme":"# @atomist/automation-seed\n\n[![npm version](https://badge.fury.io/js/%40atomist%2Fautomation-seed.svg)](https://badge.fury.io/js/%40atomist%2Fautomation-seed)\n\nThis repository contains examples demonstrating use of\nthe [Atomist][atomist] API.  You will find examples illustrating:\n\n-   Creating bot commands using _command handlers_\n-   Responding to DevOps events, e.g., commits pushed to a repository,\n    using _event handlers_\n\nThese examples use the [`@atomist/automation-client`][client] node\nmodule to implement a local client that connects to the Atomist API.\n\n[client]: https://github.com/atomist/automation-client-ts (@atomist/automation-client Node Module)\n\n## Prerequisites\n\nSee the [Atomist getting started][enrollment] documentation.\n\n[enrollment]: https://github.com/atomist/welcome/blob/master/enroll.md (Atomist - Getting Started)\n\nBelow are brief instructions on how to get started running this\nproject yourself.  If you just want to use the core functionality of\nAtomist, see the [Atomist documentation][docs].  For more detailed\ninformation on developing automations, see the [Atomist Developer\nGuide][dev].\n\n[docs]: https://docs.atomist.com/ (Atomist User Guide)\n[dev]: https://docs.atomist.com/developer/ (Atomist Developer Guide)\n\n### GitHub account\n\nYou must have a GitHub account, either GitHub.com or GitHub Enterprise\n(GHE).  If you want to use Atomist with GHE, please [contact\nAtomist](mailto:support@atomist.com).  The remainder of these\ninstructions assume you have a GitHub.com account.  If you do not\nalready have a GitHub.com account, you can [create\none][github-create].\n\nTo run automations, you will need a GitHub [personal access\ntoken][token] with \"read:org\" scope.  You can create one yourself or\nuse the Atomist CLI to do it for you (see below).\n\n[github-create]: https://github.com/join (Join GitHub)\n[token]: https://github.com/settings/tokens (GitHub Personal Access Tokens)\n\n### Atomist workspace\n\nYou also need to sign up with Atomist and create a workspace.  Once\nyou have a GitHub.com account, you can sign up with Atomist at\n[https://app.atomist.com/][atm-app].  Once you are registered with\nAtomist, you can create an Atomist workspace and add your GitHub user\nand/or organizations to that workspace.\n\nOnce you have created your Atomist workspace, take note of your\nAtomist workspace/team ID.  You can always find your Atomist workspace\nID on the workspace's settings page or, if you have added the Atomist\napp to Slack, you can send the Atomist bot the message `team` and it\nwill tell you the workspace/team ID.\n\n[atm-app]: https://app.atomist.com/ (Atomist Web Interface)\n\n### Slack\n\nAtomist has a powerful [Slack][slackhq] application, allowing you to\nsee and act on your development activity right in Slack.  Slack is not\na requirement for using Atomist, but if you try it, you'll probably\nlike it.  If you do not have access to a Slack team, it is easy to\n[create your own][slack-team].\n\nIn your Slack team, install the Atomist app in Slack, click the button\nbelow.\n\n<p align=\"center\">\n <a href=\"https://atm.st/2wiDlUe\">\n  <img alt=\"Add to Slack\" height=\"50\" width=\"174\" src=\"https://platform.slack-edge.com/img/add_to_slack@2x.png\" />\n </a>\n</p>\n\nOnce installed, the Atomist bot will guide you through connecting\nAtomist, Slack, and GitHub.\n\n[slackhq]: https://slack.com/ (Slack)\n[slack-team]: https://slack.com/get-started#create (Create a Slack Team)\n\n### Configuration\n\nOnce you have GitHub and Atomist set up, install the Atomist CLI and\nconfigure your local environment.\n\n```console\n$ npm install -g @atomist/automation-client\n$ atomist config\n```\n\nThe second command does two things: records what Atomist\nworkspace/team you want your automations running in and creates a\n[GitHub personal access token][token] with \"repo\" and \"read:org\"\nscopes.\n\nThe script will prompt you for your Atomist workspace/team ID, or you\ncan supply it using the `--team TEAM_ID` command-line option.  You can\nget your Atomist team ID from the settings page for your Atomist\nworkspace or by typing `team` in a DM to the Atomist bot.\n\nThe script will prompt you for your GitHub credentials.  It needs them\nto create the GitHub personal access token.  Atomist does not store\nyour credentials and only writes the generated token to your local\nmachine.\n\nThe Atomist API client authenticates using a GitHub personal access\ntoken.  The Atomist API uses the token to confirm you are who you say\nyou are and are in a GitHub organization connected to the Slack team\nin which you are running the automations.  In addition, it uses the\ntoken when performing any operations that access the GitHub API.\n\n## Running\n\nYou can run this automation using its Docker container, e.g., in\nKubernetes, or locally.\n\n### Docker and Kubernetes\n\nTo download and run the Docker image of this project, run the\nfollowing command\n\n```console\n$ docker run --rm -e ATOMIST_TOKEN=YOUR_TOKEN -e ATOMIST_TEAMS=TEAM_ID \\\n    atomist/automation-seed-ts:VERSION\n```\n\nreplacing `YOUR_TOKEN` and `TEAM_ID` with the token and team ID from\nyour `~/.atomist/client.config.json` created above by the `atomist\nconfig` command and `VERSION` with the [latest release of this\nrepo][latest].  Note that this will not be running any code from your\nlocal machine but the code in the Docker image.\n\nTo run the Docker image in a Kubernetes cluster, you can use the\n[deployment spec](assets/kube/deployment.yaml) from this repository as\na starting point.  Before creating the deployment resource, you will\nneed to create a secret with the following command, replacing `TOKEN`\nand `TEAM_ID` as above.\n\n```console\n$ kubectl create secret generic automation --from-file=$HOME/.atomist/client.config.json\n$ kubectl create -f assets/kube/deployment.yaml\n```\n\n[latest]: https://github.com/atomist/automation-seed-ts/releases/latest\n\n### Locally\n\nYou will need to have [Node.js][node] installed.  To verify that the\nright versions are installed, run:\n\n```console\n$ node -v\nv9.7.1\n$ npm -v\n5.6.0\n```\n\nThe `node` version should be 8 or greater and the `npm` version should\nbe 5 or greater.\n\n[node]: https://nodejs.org/ (Node.js)\n\n#### Cloning the repository and installing dependencies\n\nTo get started run the following commands to clone the project,\ninstall its dependencies, and build the project:\n\n```console\n$ git clone git@github.com:atomist/automation-seed-ts.git\n$ cd automation-seed-ts\n$ npm install\n$ npm run build\n```\n\n#### Starting up the automation-client\n\nYou can run this repository locally, allowing you to change the source\ncode of this project and immediately see the effects in your environment\nwith the following command\n\n```console\n$ npm run autostart\n```\n\nTo run in a more traditional manner, build the project and then simple\nstart it.\n\n```console\n$ npm start\n```\n\n## Using\n\n### Invoking a command handler from Slack\n\nThis project contains the code to create and respond to a simple\n`hello world` bot command.  The code that defines the bot command and\nimplements responding to the command, i.e., the _command handler_, can\nbe found in [`HelloWorld.ts`][hello].  Once you have your local\nautomation client running (the previous step in this guide), you can\ninvoke the command handler by sending the Atomist bot the command as a\nmessage.  Be sure the Atomist bot is in the channel before sending it\nthe message.\n\n```\n/invite @atomist\n@atomist hello world\n```\n\nOnce you've submitted the command in Slack, you'll see the incoming\nand outgoing messages show up in the logs of your locally running\nautomation-client.  Ultimately, you should see the response from the\nbot in Slack.\n\n[hello]: https://github.com/atomist/automation-seed-ts/blob/master/src/commands/HelloWorld.ts (HelloWorld Command Handler)\n\nFeel free to modify the code in the `HelloWorld` command handler,\nNode.js will automatically reload the client, and see what happens!\n\n### Triggering an event handler\n\nWhile command handlers respond to commands you send the Atomist bot,\n_event handlers_ take action when different types of events occur in\nyour development and operations environment.  Some examples of events\nare commits pushed to a repo, or a CI build that fails, or an instance\nof a running service that becomes unhealthy.  Example responses to those\nevents are showing the commits in a Slack message, automatically\nrestarting the build, and triggering a PagerDuty alert, respectively.\n\nThe sample event handler in this project, [NotifyOnPush][nop-handler],\nwill notice when someone pushes new commits to a repository in the\nGitHub organization and send a notice of that push to all Slack\nchannels associated with that repository.\n\nIf you have followed the instructions above and are running these\nautomations against the atomist-playground Slack team and GitHub\norganization, go ahead and edit the [notify-on-push][nop-repo]\nrepository by adding some text to its [README][nop-readme].  Once you\nhave saved your changes, you should see that event appear in the\nconsole logs of your locally running automation client, followed by a\nlog of the actions the event handler is taking.  Once those actions\nare complete, you should see a new message in the\n[`#notify-on-push`][nop-channel] channel in the atomist-playground\nSlack team.\n\n[nop-handler]: https://github.com/atomist/automation-seed-ts/blob/master/src/events/NotifyOnPush.ts (Atomist NotifyOnPush Event Handler)\n[nop-repo]: https://github.com/atomist-playground/notify-on-push (Atomist NotifyOnPush Repository)\n[nop-readme]: https://github.com/atomist-playground/notify-on-push/edit/master/README.md (Edit NotifyOnPush README)\n[nop-channel]: https://atomist-playground.slack.com/messages/C7GNF6743/ (NotifyOnPush Slack Channel)\n\n## Support\n\nGeneral support questions should be discussed in the `#support`\nchannel in our community Slack team\nat [atomist-community.slack.com][slack].\n\nIf you find a problem, please create an [issue][].\n\n[issue]: https://github.com/atomist/automation-seed-ts/issues\n\n## Development\n\nYou will need to install [node][] to build and test this project.\n\n### Build and Test\n\nCommand | Reason\n------- | ------\n`npm install` | install all the required packages\n`npm run build` | lint, compile, and test\n`npm start` | start the Atomist automation client\n`npm run autostart` | run the client, refreshing when files change\n`npm run lint` | run tslint against the TypeScript\n`npm run compile` | compile all TypeScript into JavaScript\n`npm test` | run tests and ensure everything is working\n`npm run autotest` | run tests continuously\n`npm run clean` | remove stray compiled JavaScript files and build directory\n\n### Release\n\nReleases are managed by the [Atomist SDM][atomist-sdm].  Press the\n\"Release\" button in the Atomist dashboard or Slack.\n\n[atomist-sdm]: https://github.com/atomist/atomist-sdm (Atomist Software Delivery Machine)\n\n---\n\nCreated by [Atomist][atomist].\nNeed Help?  [Join our Slack team][slack].\n\n[atomist]: https://atomist.com/ (Atomist - How Teams Deliver Software)\n[slack]: https://join.atomist.com/ (Atomist Community Slack)\n","readmeFilename":"README.md","_id":"@atomist/automation-seed@0.11.0-20180808112529","_npmVersion":"6.3.0","_nodeVersion":"9.11.2","_npmUser":{"name":"atomist","email":"npm@atomist.com"},"dist":{"integrity":"sha512-8VyD99MfVeGuHD02Sa2t42Ymb041nw0f5BmaSa9jWBCTIeO9XXj7icizsZ2K3QaTpwxnuSdb6w96mwW21HWO+Q==","shasum":"335b114909abc03de45fbc499d677f7bdbbec4a3","tarball":"https://registry.npmjs.org/@atomist/automation-seed/-/automation-seed-0.11.0-20180808112529.tgz","fileCount":25,"unpackedSize":115436,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbatPrCRA9TVsSAnZWagAA5ckP/0vnHcTkKbyiSHw8Mf7x\nDUS0vJeVIxr0mAb5Q55qFfVeaB85Y/XImjtuLX1r7U2LWxamI+v/iRS+k4PZ\nu2ByLRCZpiatdhtc0tjAfX2AM/dvKxIfg8GPV7UU9G417wDlmqPGi+ncJ84w\nuwsDeFfxfuP0cSItAprooDqP1QfmfeL9+DMamd+SrGBoqy06+CEvmh4HIxKJ\ndNAeY2rQWh5ayTDFxY80KaqBZ3Od6LTERoi5eBAW62OhU5f2aXsjDpULRJBT\nRUazfJ7wjg71pjzHKrlICPkjax8E4g0X/aGpLmUEOx6oyYv0zV+uzCDlYLII\n0l1ujFG2nOvDSpcwFrXkIkF5s272meCZOxpPgazizADp4HeS474jfZJR/Mka\nCE9YtWbGPk1DDV+JzDnWjEvBCwgU/gqwrJRAI0wVP/Y+WzWt/oos4E2CAV7C\nHAk+orxyZdZh5VJnt9OZaWZ2cdVgyBO+S977nwYzQmXdWN8cNqY3G+020X//\nFGxM2EKME6DyTlYcF+55eVPgq6oQdR3mYYEw9cX6zka1nJYmjSSmyPyEFesz\nc+67usQFGjLQwyUB1LMmrhb08U7YQ579zBZOqM/HarjU4lqeY4Lc23ZFYGN5\nmMWUtYkZm1Zl5D4fzBAXNuKvizKZZlUhpcMMmohCzDoVogkL19FElkGZQDpw\nZwyf\r\n=bC1g\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDntooKsSdVCaz9nYqc9k84mBTJsjmGnVBKA8M+Slv8hgIgW2iseuX4PlHUNVxEs9mPeVaM4PNNizkSbt4WeTo4neg="}]},"maintainers":[{"name":"atomist","email":"npm@atomist.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/automation-seed_0.11.0-20180808112529_1533727723746_0.626370624337474"},"_hasShrinkwrap":false},"0.11.0-20180808190936":{"name":"@atomist/automation-seed","version":"0.11.0-20180808190936","description":"Atomist automation client seed project","author":{"name":"Atomist"},"license":"Apache-2.0","repository":{"type":"git","url":"git+https://github.com/atomist/automation-seed-ts.git"},"homepage":"https://github.com/atomist/automation-seed-ts#readme","bugs":{"url":"https://github.com/atomist/automation-seed-ts/issues"},"keywords":["atomist","automation","seed"],"main":"./index.js","types":"./index.d.ts","dependencies":{"@atomist/automation-client":"^0.19.1","@types/app-root-path":"^1.2.4","app-root-path":"^2.0.1"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.5.7","@types/power-assert":"^1.5.0","espower-typescript":"^9.0.0","mocha":"^5.2.0","nodemon":"^1.18.3","npm-run-all":"^4.1.3","power-assert":"^1.6.0","rimraf":"^2.6.2","supervisor":"^0.12.0","ts-node":"^7.0.0","tslint":"^5.11.0","typedoc":"^0.11.1","typescript":"^2.9.2","typescript-formatter":"^7.2.2"},"directories":{"test":"test"},"scripts":{"autostart":"nodemon --watch index.ts,lib --ext ts --exec ts-node -- node_modules/@atomist/automation-client/start.client.js","autotest":"supervisor --watch index.ts,lib,test --extensions ts --no-restart-on exit --quiet --exec npm -- test","build":"npm-run-all compile test lint doc","clean":"npm-run-all clean:compile clean:doc clean:run","clean:compile":"rimraf build git-info.json \"index.{d.ts,js*}\" \"{lib,test}/**/*.{d.ts,js*}\" lib/typings/types.ts","clean:dist":"npm-run-all clean clean:npm","clean:doc":"rimraf doc","clean:npm":"rimraf node_modules","clean:run":"rimraf *-v8.log profile.txt log","compile":"npm-run-all git:info gql:gen compile:ts","compile:ts":"tsc --project .","doc":"typedoc --mode modules --ignoreCompilerErrors --exclude \"**/*.d.ts\" --out doc index.ts lib","fmt":"tsfmt --replace","git:info":"atomist git","gql:gen":"atomist gql-gen --no-install \"lib/**/*.graphql\"","lint":"tslint --format verbose --project . --exclude \"{build,node_modules}/**\" --exclude \"**/*.d.ts\" \"**/*.ts\"","lint:fix":"npm run lint -- --fix","start":"atomist start --no-install --no-compile","test":"mocha --require espower-typescript/guess \"test/**/*.test.ts\"","test:one":"mocha --require espower-typescript/guess \"test/**/${TEST:-*.test.ts}\"","typedoc":"npm run doc"},"engines":{"node":">=8.0.0","npm":">=5.0.0"},"gitHead":"4625221cdc585b2ff07307ebb2671963c842b95a","readme":"# @atomist/automation-seed\n\n[![npm version](https://badge.fury.io/js/%40atomist%2Fautomation-seed.svg)](https://badge.fury.io/js/%40atomist%2Fautomation-seed)\n\nThis repository contains examples demonstrating use of\nthe [Atomist][atomist] API.  You will find examples illustrating:\n\n-   Creating bot commands using _command handlers_\n-   Responding to DevOps events, e.g., commits pushed to a repository,\n    using _event handlers_\n\nThese examples use the [`@atomist/automation-client`][client] node\nmodule to implement a local client that connects to the Atomist API.\n\n[client]: https://github.com/atomist/automation-client-ts (@atomist/automation-client Node Module)\n\n## Prerequisites\n\nSee the [Atomist getting started][enrollment] documentation.\n\n[enrollment]: https://github.com/atomist/welcome/blob/master/enroll.md (Atomist - Getting Started)\n\nBelow are brief instructions on how to get started running this\nproject yourself.  If you just want to use the core functionality of\nAtomist, see the [Atomist documentation][docs].  For more detailed\ninformation on developing automations, see the [Atomist Developer\nGuide][dev].\n\n[docs]: https://docs.atomist.com/ (Atomist User Guide)\n[dev]: https://docs.atomist.com/developer/ (Atomist Developer Guide)\n\n### GitHub account\n\nYou must have a GitHub account, either GitHub.com or GitHub Enterprise\n(GHE).  If you want to use Atomist with GHE, please [contact\nAtomist](mailto:support@atomist.com).  The remainder of these\ninstructions assume you have a GitHub.com account.  If you do not\nalready have a GitHub.com account, you can [create\none][github-create].\n\nTo run automations, you will need a GitHub [personal access\ntoken][token] with \"read:org\" scope.  You can create one yourself or\nuse the Atomist CLI to do it for you (see below).\n\n[github-create]: https://github.com/join (Join GitHub)\n[token]: https://github.com/settings/tokens (GitHub Personal Access Tokens)\n\n### Atomist workspace\n\nYou also need to sign up with Atomist and create a workspace.  Once\nyou have a GitHub.com account, you can sign up with Atomist at\n[https://app.atomist.com/][atm-app].  Once you are registered with\nAtomist, you can create an Atomist workspace and add your GitHub user\nand/or organizations to that workspace.\n\nOnce you have created your Atomist workspace, take note of your\nAtomist workspace/team ID.  You can always find your Atomist workspace\nID on the workspace's settings page or, if you have added the Atomist\napp to Slack, you can send the Atomist bot the message `team` and it\nwill tell you the workspace/team ID.\n\n[atm-app]: https://app.atomist.com/ (Atomist Web Interface)\n\n### Slack\n\nAtomist has a powerful [Slack][slackhq] application, allowing you to\nsee and act on your development activity right in Slack.  Slack is not\na requirement for using Atomist, but if you try it, you'll probably\nlike it.  If you do not have access to a Slack team, it is easy to\n[create your own][slack-team].\n\nIn your Slack team, install the Atomist app in Slack, click the button\nbelow.\n\n<p align=\"center\">\n <a href=\"https://atm.st/2wiDlUe\">\n  <img alt=\"Add to Slack\" height=\"50\" width=\"174\" src=\"https://platform.slack-edge.com/img/add_to_slack@2x.png\" />\n </a>\n</p>\n\nOnce installed, the Atomist bot will guide you through connecting\nAtomist, Slack, and GitHub.\n\n[slackhq]: https://slack.com/ (Slack)\n[slack-team]: https://slack.com/get-started#create (Create a Slack Team)\n\n### Configuration\n\nOnce you have GitHub and Atomist set up, install the Atomist CLI and\nconfigure your local environment.\n\n```console\n$ npm install -g @atomist/automation-client\n$ atomist config\n```\n\nThe second command does two things: records what Atomist\nworkspace/team you want your automations running in and creates a\n[GitHub personal access token][token] with \"repo\" and \"read:org\"\nscopes.\n\nThe script will prompt you for your Atomist workspace/team ID, or you\ncan supply it using the `--team TEAM_ID` command-line option.  You can\nget your Atomist team ID from the settings page for your Atomist\nworkspace or by typing `team` in a DM to the Atomist bot.\n\nThe script will prompt you for your GitHub credentials.  It needs them\nto create the GitHub personal access token.  Atomist does not store\nyour credentials and only writes the generated token to your local\nmachine.\n\nThe Atomist API client authenticates using a GitHub personal access\ntoken.  The Atomist API uses the token to confirm you are who you say\nyou are and are in a GitHub organization connected to the Slack team\nin which you are running the automations.  In addition, it uses the\ntoken when performing any operations that access the GitHub API.\n\n## Running\n\nYou can run this automation using its Docker container, e.g., in\nKubernetes, or locally.\n\n### Docker and Kubernetes\n\nTo download and run the Docker image of this project, run the\nfollowing command\n\n```console\n$ docker run --rm -e ATOMIST_TOKEN=YOUR_TOKEN -e ATOMIST_TEAMS=TEAM_ID \\\n    atomist/automation-seed-ts:VERSION\n```\n\nreplacing `YOUR_TOKEN` and `TEAM_ID` with the token and team ID from\nyour `~/.atomist/client.config.json` created above by the `atomist\nconfig` command and `VERSION` with the [latest release of this\nrepo][latest].  Note that this will not be running any code from your\nlocal machine but the code in the Docker image.\n\nTo run the Docker image in a Kubernetes cluster, you can use the\n[deployment spec](assets/kube/deployment.yaml) from this repository as\na starting point.  Before creating the deployment resource, you will\nneed to create a secret with the following command, replacing `TOKEN`\nand `TEAM_ID` as above.\n\n```console\n$ kubectl create secret generic automation --from-file=$HOME/.atomist/client.config.json\n$ kubectl create -f assets/kube/deployment.yaml\n```\n\n[latest]: https://github.com/atomist/automation-seed-ts/releases/latest\n\n### Locally\n\nYou will need to have [Node.js][node] installed.  To verify that the\nright versions are installed, run:\n\n```console\n$ node -v\nv9.7.1\n$ npm -v\n5.6.0\n```\n\nThe `node` version should be 8 or greater and the `npm` version should\nbe 5 or greater.\n\n[node]: https://nodejs.org/ (Node.js)\n\n#### Cloning the repository and installing dependencies\n\nTo get started run the following commands to clone the project,\ninstall its dependencies, and build the project:\n\n```console\n$ git clone git@github.com:atomist/automation-seed-ts.git\n$ cd automation-seed-ts\n$ npm install\n$ npm run build\n```\n\n#### Starting up the automation-client\n\nYou can run this repository locally, allowing you to change the source\ncode of this project and immediately see the effects in your environment\nwith the following command\n\n```console\n$ npm run autostart\n```\n\nTo run in a more traditional manner, build the project and then simple\nstart it.\n\n```console\n$ npm start\n```\n\n## Using\n\n### Invoking a command handler from Slack\n\nThis project contains the code to create and respond to a simple\n`hello world` bot command.  The code that defines the bot command and\nimplements responding to the command, i.e., the _command handler_, can\nbe found in [`HelloWorld.ts`][hello].  Once you have your local\nautomation client running (the previous step in this guide), you can\ninvoke the command handler by sending the Atomist bot the command as a\nmessage.  Be sure the Atomist bot is in the channel before sending it\nthe message.\n\n```\n/invite @atomist\n@atomist hello world\n```\n\nOnce you've submitted the command in Slack, you'll see the incoming\nand outgoing messages show up in the logs of your locally running\nautomation-client.  Ultimately, you should see the response from the\nbot in Slack.\n\n[hello]: https://github.com/atomist/automation-seed-ts/blob/master/src/commands/HelloWorld.ts (HelloWorld Command Handler)\n\nFeel free to modify the code in the `HelloWorld` command handler,\nNode.js will automatically reload the client, and see what happens!\n\n### Triggering an event handler\n\nWhile command handlers respond to commands you send the Atomist bot,\n_event handlers_ take action when different types of events occur in\nyour development and operations environment.  Some examples of events\nare commits pushed to a repo, or a CI build that fails, or an instance\nof a running service that becomes unhealthy.  Example responses to those\nevents are showing the commits in a Slack message, automatically\nrestarting the build, and triggering a PagerDuty alert, respectively.\n\nThe sample event handler in this project, [NotifyOnPush][nop-handler],\nwill notice when someone pushes new commits to a repository in the\nGitHub organization and send a notice of that push to all Slack\nchannels associated with that repository.\n\nIf you have followed the instructions above and are running these\nautomations against the atomist-playground Slack team and GitHub\norganization, go ahead and edit the [notify-on-push][nop-repo]\nrepository by adding some text to its [README][nop-readme].  Once you\nhave saved your changes, you should see that event appear in the\nconsole logs of your locally running automation client, followed by a\nlog of the actions the event handler is taking.  Once those actions\nare complete, you should see a new message in the\n[`#notify-on-push`][nop-channel] channel in the atomist-playground\nSlack team.\n\n[nop-handler]: https://github.com/atomist/automation-seed-ts/blob/master/src/events/NotifyOnPush.ts (Atomist NotifyOnPush Event Handler)\n[nop-repo]: https://github.com/atomist-playground/notify-on-push (Atomist NotifyOnPush Repository)\n[nop-readme]: https://github.com/atomist-playground/notify-on-push/edit/master/README.md (Edit NotifyOnPush README)\n[nop-channel]: https://atomist-playground.slack.com/messages/C7GNF6743/ (NotifyOnPush Slack Channel)\n\n## Support\n\nGeneral support questions should be discussed in the `#support`\nchannel in our community Slack team\nat [atomist-community.slack.com][slack].\n\nIf you find a problem, please create an [issue][].\n\n[issue]: https://github.com/atomist/automation-seed-ts/issues\n\n## Development\n\nYou will need to install [node][] to build and test this project.\n\n### Build and Test\n\nCommand | Reason\n------- | ------\n`npm install` | install all the required packages\n`npm run build` | lint, compile, and test\n`npm start` | start the Atomist automation client\n`npm run autostart` | run the client, refreshing when files change\n`npm run lint` | run tslint against the TypeScript\n`npm run compile` | compile all TypeScript into JavaScript\n`npm test` | run tests and ensure everything is working\n`npm run autotest` | run tests continuously\n`npm run clean` | remove stray compiled JavaScript files and build directory\n\n### Release\n\nReleases are managed by the [Atomist SDM][atomist-sdm].  Press the\n\"Release\" button in the Atomist dashboard or Slack.\n\n[atomist-sdm]: https://github.com/atomist/atomist-sdm (Atomist Software Delivery Machine)\n\n---\n\nCreated by [Atomist][atomist].\nNeed Help?  [Join our Slack team][slack].\n\n[atomist]: https://atomist.com/ (Atomist - How Teams Deliver Software)\n[slack]: https://join.atomist.com/ (Atomist Community Slack)\n","readmeFilename":"README.md","_id":"@atomist/automation-seed@0.11.0-20180808190936","_npmVersion":"6.3.0","_nodeVersion":"9.11.2","_npmUser":{"name":"atomist","email":"npm@atomist.com"},"dist":{"integrity":"sha512-VPJC/3oXJCUYgCfBJLS3GlqJFBb9ELIoIxTyVOkRheAxutjvpsCuKPIVbsVDQCHzugfmd2K4FpiaDyk3WYvKag==","shasum":"0c1174e05add41acfdbde891e3d6ef4da12f179d","tarball":"https://registry.npmjs.org/@atomist/automation-seed/-/automation-seed-0.11.0-20180808190936.tgz","fileCount":25,"unpackedSize":173363,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJba0C3CRA9TVsSAnZWagAAf8UP/R5ntN/IWwmHwEh+sJoC\nCJL06QjKXJVovKgS32+Kw+g1Pcw3BG6d0jgZ8qIxZLAQm1JsTiy/hYmj/VTN\nRf8/La3H6BUQHA4405j3KeBkY+3KRIXKSqwnFLMROQT39oxdocYtuuwPvrAv\n4cFqtfVJNjzHxID2D1jU4wZJ0Az0P6Sc4WmzIqy++nGF7IzBa5EePWGDVC3n\nca8geFR/SI39TLyEORTz89kTN8ybW7oN6w+aEwmdcderflPcIy0Yoo8eemSh\n3a5zClL3iTEju23BGRmnTpXONHQLszly2SZWtuQq072lgcG+oEMzzMqBVX9/\nKfeSNncjqQPwIDGTJlBPjAGd7OJZSIjoK/VWmY2Kf2o7z5x+1emHRXequ2MW\nZyOAN6mvVmA9A2u0Y4W3cdszQS06LfWDNSFON9mY/YrWeyYJtDwXV7p7LI5a\na+nYE9AO5/IAGV39yUg+3zCq4ySj48wD/90Rt71CCYBwtjvQ5OeAT0K4P2Fw\nG+K5kHiMASbHYwGQTiftBsTAnlF+tIoCIATPhgaekrtPvE3YYSosiVyscL/l\n4Yf8JOLxo81kFH2ufZuUs8YZ1igRXjpIfVcQ4U28yOD6YPysvA1Q24uyLFna\nL9qJ9VATsm2pRc+dmL7ZQaOQaH1MGbShyF8NR+xJbfytdqwgHZNbtPr0lKci\nRiA4\r\n=rLHu\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCVnl7sgyugSg1SJjT5B62B8bFxqKl84Udf51azKO6/KAIhAKKs8KR1mmA9RLySwKprUu9kXm57761kUZA7sALqHa/S"}]},"maintainers":[{"name":"atomist","email":"npm@atomist.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/automation-seed_0.11.0-20180808190936_1533755574918_0.46858934924457074"},"_hasShrinkwrap":false},"0.11.0-20180813192630":{"name":"@atomist/automation-seed","version":"0.11.0-20180813192630","description":"Atomist automation client seed project","author":{"name":"Atomist"},"license":"Apache-2.0","repository":{"type":"git","url":"git+https://github.com/atomist/automation-seed-ts.git"},"homepage":"https://github.com/atomist/automation-seed-ts#readme","bugs":{"url":"https://github.com/atomist/automation-seed-ts/issues"},"keywords":["atomist","automation","seed"],"main":"./index.js","types":"./index.d.ts","dependencies":{"@atomist/automation-client":"^0.20.1","@types/app-root-path":"^1.2.4","app-root-path":"^2.0.1"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.5.7","@types/power-assert":"^1.5.0","espower-typescript":"^9.0.0","mocha":"^5.2.0","nodemon":"^1.18.3","npm-run-all":"^4.1.3","power-assert":"^1.6.0","rimraf":"^2.6.2","supervisor":"^0.12.0","ts-node":"^7.0.0","tslint":"^5.11.0","typedoc":"^0.11.1","typescript":"^2.9.2","typescript-formatter":"^7.2.2"},"directories":{"test":"test"},"scripts":{"autostart":"nodemon --watch index.ts,lib --ext ts --exec ts-node -- node_modules/@atomist/automation-client/start.client.js","autotest":"supervisor --watch index.ts,lib,test --extensions ts --no-restart-on exit --quiet --exec npm -- test","build":"run-s compile test lint doc","clean":"run-p clean:compile clean:doc clean:run","clean:compile":"rimraf git-info.json \"index.{d.ts,js{,.map}}\" \"{lib,test}/**/*.{d.ts,js{,.map}}\" lib/typings/types.ts","clean:dist":"run-s clean clean:npm","clean:doc":"rimraf doc","clean:npm":"rimraf node_modules","clean:run":"rimraf *-v8.log profile.txt log","compile":"run-s git:info gql:gen compile:ts","compile:ts":"tsc --project .","doc":"typedoc --mode modules --ignoreCompilerErrors --exclude \"**/*.d.ts\" --out doc index.ts lib","fmt":"tsfmt --replace","git:info":"node node_modules/@atomist/automation-client/start.git-info.js","gql:gen":"node node_modules/@atomist/automation-client/start.gql-gen.js","lint":"tslint --format verbose --project . --exclude \"{build,node_modules}/**\" --exclude \"**/*.d.ts\" \"**/*.ts\"","lint:fix":"npm run lint -- --fix","start":"node node_modules/@atomist/automation-client/start.client.js","test":"mocha --require espower-typescript/guess \"test/**/*.test.ts\"","test:one":"mocha --require espower-typescript/guess \"test/**/${TEST:-*.test.ts}\"","typedoc":"npm run doc"},"engines":{"node":">=8.0.0","npm":">=5.0.0"},"gitHead":"600db91fc5bbb27f35f5c05920b2eacfb0b8a5df","readme":"# @atomist/automation-seed\n\n[![npm version](https://badge.fury.io/js/%40atomist%2Fautomation-seed.svg)](https://badge.fury.io/js/%40atomist%2Fautomation-seed)\n\nThis repository contains examples demonstrating use of\nthe [Atomist][atomist] API.  You will find examples illustrating:\n\n-   Creating bot commands using _command handlers_\n-   Responding to DevOps events, e.g., commits pushed to a repository,\n    using _event handlers_\n\nThese examples use the [`@atomist/automation-client`][client] node\nmodule to implement a local client that connects to the Atomist API.\n\n[client]: https://github.com/atomist/automation-client-ts (@atomist/automation-client Node Module)\n\n## Prerequisites\n\nSee the [Atomist getting started][enrollment] documentation.\n\n[enrollment]: https://github.com/atomist/welcome/blob/master/enroll.md (Atomist - Getting Started)\n\nBelow are brief instructions on how to get started running this\nproject yourself.  If you just want to use the core functionality of\nAtomist, see the [Atomist documentation][docs].  For more detailed\ninformation on developing automations, see the [Atomist Developer\nGuide][dev].\n\n[docs]: https://docs.atomist.com/ (Atomist User Guide)\n[dev]: https://docs.atomist.com/developer/ (Atomist Developer Guide)\n\n### GitHub account\n\nYou must have a GitHub account, either GitHub.com or GitHub Enterprise\n(GHE).  If you want to use Atomist with GHE, please [contact\nAtomist](mailto:support@atomist.com).  The remainder of these\ninstructions assume you have a GitHub.com account.  If you do not\nalready have a GitHub.com account, you can [create\none][github-create].\n\nTo run automations, you will need a GitHub [personal access\ntoken][token] with \"read:org\" scope.  You can create one yourself or\nuse the Atomist CLI to do it for you (see below).\n\n[github-create]: https://github.com/join (Join GitHub)\n[token]: https://github.com/settings/tokens (GitHub Personal Access Tokens)\n\n### Atomist workspace\n\nYou also need to sign up with Atomist and create a workspace.  Once\nyou have a GitHub.com account, you can sign up with Atomist at\n[https://app.atomist.com/][atm-app].  Once you are registered with\nAtomist, you can create an Atomist workspace and add your GitHub user\nand/or organizations to that workspace.\n\nOnce you have created your Atomist workspace, take note of your\nAtomist workspace/team ID.  You can always find your Atomist workspace\nID on the workspace's settings page or, if you have added the Atomist\napp to Slack, you can send the Atomist bot the message `team` and it\nwill tell you the workspace/team ID.\n\n[atm-app]: https://app.atomist.com/ (Atomist Web Interface)\n\n### Slack\n\nAtomist has a powerful [Slack][slackhq] application, allowing you to\nsee and act on your development activity right in Slack.  Slack is not\na requirement for using Atomist, but if you try it, you'll probably\nlike it.  If you do not have access to a Slack team, it is easy to\n[create your own][slack-team].\n\nIn your Slack team, install the Atomist app in Slack, click the button\nbelow.\n\n<p align=\"center\">\n <a href=\"https://atm.st/2wiDlUe\">\n  <img alt=\"Add to Slack\" height=\"50\" width=\"174\" src=\"https://platform.slack-edge.com/img/add_to_slack@2x.png\" />\n </a>\n</p>\n\nOnce installed, the Atomist bot will guide you through connecting\nAtomist, Slack, and GitHub.\n\n[slackhq]: https://slack.com/ (Slack)\n[slack-team]: https://slack.com/get-started#create (Create a Slack Team)\n\n### Configuration\n\nOnce you have GitHub and Atomist set up, install the Atomist CLI and\nconfigure your local environment.\n\n```console\n$ npm install -g @atomist/automation-client\n$ atomist config\n```\n\nThe second command does two things: records what Atomist\nworkspace/team you want your automations running in and creates a\n[GitHub personal access token][token] with \"repo\" and \"read:org\"\nscopes.\n\nThe script will prompt you for your Atomist workspace/team ID, or you\ncan supply it using the `--team TEAM_ID` command-line option.  You can\nget your Atomist team ID from the settings page for your Atomist\nworkspace or by typing `team` in a DM to the Atomist bot.\n\nThe script will prompt you for your GitHub credentials.  It needs them\nto create the GitHub personal access token.  Atomist does not store\nyour credentials and only writes the generated token to your local\nmachine.\n\nThe Atomist API client authenticates using a GitHub personal access\ntoken.  The Atomist API uses the token to confirm you are who you say\nyou are and are in a GitHub organization connected to the Slack team\nin which you are running the automations.  In addition, it uses the\ntoken when performing any operations that access the GitHub API.\n\n## Running\n\nYou can run this automation using its Docker container, e.g., in\nKubernetes, or locally.\n\n### Docker and Kubernetes\n\nTo download and run the Docker image of this project, run the\nfollowing command\n\n```console\n$ docker run --rm -e ATOMIST_TOKEN=YOUR_TOKEN -e ATOMIST_TEAMS=TEAM_ID \\\n    atomist/automation-seed-ts:VERSION\n```\n\nreplacing `YOUR_TOKEN` and `TEAM_ID` with the token and team ID from\nyour `~/.atomist/client.config.json` created above by the `atomist\nconfig` command and `VERSION` with the [latest release of this\nrepo][latest].  Note that this will not be running any code from your\nlocal machine but the code in the Docker image.\n\nTo run the Docker image in a Kubernetes cluster, you can use the\n[deployment spec](assets/kube/deployment.yaml) from this repository as\na starting point.  Before creating the deployment resource, you will\nneed to create a secret with the following command, replacing `TOKEN`\nand `TEAM_ID` as above.\n\n```console\n$ kubectl create secret generic automation --from-file=$HOME/.atomist/client.config.json\n$ kubectl create -f assets/kube/deployment.yaml\n```\n\n[latest]: https://github.com/atomist/automation-seed-ts/releases/latest\n\n### Locally\n\nYou will need to have [Node.js][node] installed.  To verify that the\nright versions are installed, run:\n\n```console\n$ node -v\nv9.7.1\n$ npm -v\n5.6.0\n```\n\nThe `node` version should be 8 or greater and the `npm` version should\nbe 5 or greater.\n\n[node]: https://nodejs.org/ (Node.js)\n\n#### Cloning the repository and installing dependencies\n\nTo get started run the following commands to clone the project,\ninstall its dependencies, and build the project:\n\n```console\n$ git clone git@github.com:atomist/automation-seed-ts.git\n$ cd automation-seed-ts\n$ npm install\n$ npm run build\n```\n\n#### Starting up the automation-client\n\nYou can run this repository locally, allowing you to change the source\ncode of this project and immediately see the effects in your environment\nwith the following command\n\n```console\n$ npm run autostart\n```\n\nTo run in a more traditional manner, build the project and then simple\nstart it.\n\n```console\n$ npm start\n```\n\n## Using\n\n### Invoking a command handler from Slack\n\nThis project contains the code to create and respond to a simple\n`hello world` bot command.  The code that defines the bot command and\nimplements responding to the command, i.e., the _command handler_, can\nbe found in [`HelloWorld.ts`][hello].  Once you have your local\nautomation client running (the previous step in this guide), you can\ninvoke the command handler by sending the Atomist bot the command as a\nmessage.  Be sure the Atomist bot is in the channel before sending it\nthe message.\n\n```\n/invite @atomist\n@atomist hello world\n```\n\nOnce you've submitted the command in Slack, you'll see the incoming\nand outgoing messages show up in the logs of your locally running\nautomation-client.  Ultimately, you should see the response from the\nbot in Slack.\n\n[hello]: https://github.com/atomist/automation-seed-ts/blob/master/src/commands/HelloWorld.ts (HelloWorld Command Handler)\n\nFeel free to modify the code in the `HelloWorld` command handler,\nNode.js will automatically reload the client, and see what happens!\n\n### Triggering an event handler\n\nWhile command handlers respond to commands you send the Atomist bot,\n_event handlers_ take action when different types of events occur in\nyour development and operations environment.  Some examples of events\nare commits pushed to a repo, or a CI build that fails, or an instance\nof a running service that becomes unhealthy.  Example responses to those\nevents are showing the commits in a Slack message, automatically\nrestarting the build, and triggering a PagerDuty alert, respectively.\n\nThe sample event handler in this project, [NotifyOnPush][nop-handler],\nwill notice when someone pushes new commits to a repository in the\nGitHub organization and send a notice of that push to all Slack\nchannels associated with that repository.\n\nIf you have followed the instructions above and are running these\nautomations against the atomist-playground Slack team and GitHub\norganization, go ahead and edit the [notify-on-push][nop-repo]\nrepository by adding some text to its [README][nop-readme].  Once you\nhave saved your changes, you should see that event appear in the\nconsole logs of your locally running automation client, followed by a\nlog of the actions the event handler is taking.  Once those actions\nare complete, you should see a new message in the\n[`#notify-on-push`][nop-channel] channel in the atomist-playground\nSlack team.\n\n[nop-handler]: https://github.com/atomist/automation-seed-ts/blob/master/src/events/NotifyOnPush.ts (Atomist NotifyOnPush Event Handler)\n[nop-repo]: https://github.com/atomist-playground/notify-on-push (Atomist NotifyOnPush Repository)\n[nop-readme]: https://github.com/atomist-playground/notify-on-push/edit/master/README.md (Edit NotifyOnPush README)\n[nop-channel]: https://atomist-playground.slack.com/messages/C7GNF6743/ (NotifyOnPush Slack Channel)\n\n## Support\n\nGeneral support questions should be discussed in the `#support`\nchannel in our community Slack team\nat [atomist-community.slack.com][slack].\n\nIf you find a problem, please create an [issue][].\n\n[issue]: https://github.com/atomist/automation-seed-ts/issues\n\n## Development\n\nYou will need to install [node][] to build and test this project.\n\n### Build and Test\n\nCommand | Reason\n------- | ------\n`npm install` | install all the required packages\n`npm run build` | lint, compile, and test\n`npm start` | start the Atomist automation client\n`npm run autostart` | run the client, refreshing when files change\n`npm run lint` | run tslint against the TypeScript\n`npm run compile` | compile all TypeScript into JavaScript\n`npm test` | run tests and ensure everything is working\n`npm run autotest` | run tests continuously\n`npm run clean` | remove stray compiled JavaScript files and build directory\n\n### Release\n\nReleases are managed by the [Atomist SDM][atomist-sdm].  Press the\n\"Release\" button in the Atomist dashboard or Slack.\n\n[atomist-sdm]: https://github.com/atomist/atomist-sdm (Atomist Software Delivery Machine)\n\n---\n\nCreated by [Atomist][atomist].\nNeed Help?  [Join our Slack team][slack].\n\n[atomist]: https://atomist.com/ (Atomist - How Teams Deliver Software)\n[slack]: https://join.atomist.com/ (Atomist Community Slack)\n","readmeFilename":"README.md","_id":"@atomist/automation-seed@0.11.0-20180813192630","_npmVersion":"6.3.0","_nodeVersion":"9.11.2","_npmUser":{"name":"atomist","email":"npm@atomist.com"},"dist":{"integrity":"sha512-blOKlGGOxas8tFM9dmh/T8LTyFJVh05mf/ec8MNq4Ef2zcycAxgLsaNEStpEp0zjRl+3t0/96S49M+vFpv5tCA==","shasum":"f306fcb686ce0a4b6d3911d9b45b27e65aa62cdb","tarball":"https://registry.npmjs.org/@atomist/automation-seed/-/automation-seed-0.11.0-20180813192630.tgz","fileCount":25,"unpackedSize":178199,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbcdwwCRA9TVsSAnZWagAAuIUP/260XL1Y5hclBZSfDDH0\ndfmqSjuTgyC+EGQ1tGxMlAM87hmaUa9Dh5r6j1sFEcKUWxnoBLx4InMRDY1G\nhsDHIq/OgCgsHLDbbK2KRpd1CIpSk7qU1yv/7kBdHQlOJsGv//ltqfGtlVtl\nnC43OJ0c7WdrimL5SNxjKqi6AuuG1bPYkUrv/tW98N0EAIJdhE7ElTB+Czwo\nnPuc5ugUQtxzYvYzBSEq4+cCFFDOXugO0gXnZ9yRhlArN+l9aMzL59MChobD\nte5HdUD6WnF20iddAkN+M0S7VHnZAIsDco3Zr71fxjktLeV5eh9NEABerzrj\nASwRtazM++J7DRmcGhx8bcsSkAUmXJgC6vyIct/kWQDOHcQGUKB1ECb3aa/W\nuA7gPWp7iBlOmJX6nxRsiX+VNPUBDnty2lhM7Hye++uMr4dWjHQxcMIv+Q2u\njIrZZHrN8fXXm1rkc+nIR7MDkQCR/rCWStH378OXPPvTKIrqpIYzvnYNlSLK\nNhyDQ+sn+LQ7vFXSrPkclZ2y/gG+M0Fyy8Yw0hSreBbEXOZtDZr0/HudnqoY\n831jx8x87i56uaoJyjq4JSWVny9UglDG948fuBHaTuaJ+q8Rp+fq2TlzBtFS\nW8MAuuzkcNevCchi2qjRxTqsn3d8JHWMkvj1/vtmeZ+hNBUzJ6hzFXWQAMvG\nyvQs\r\n=FBjM\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC815W1dyLjR3YBRMMQ3p9i1dvXlEh4aPcQzBP7j/9B6gIgXetvcmzCpWHJt7o3hOESnpM09mwl1tt/L6NCqTI6bjo="}]},"maintainers":[{"name":"atomist","email":"npm@atomist.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/automation-seed_0.11.0-20180813192630_1534188591860_0.05166371185027874"},"_hasShrinkwrap":false},"0.11.0-20180816174223":{"name":"@atomist/automation-seed","version":"0.11.0-20180816174223","description":"Atomist automation client seed project","author":{"name":"Atomist"},"license":"Apache-2.0","repository":{"type":"git","url":"git+https://github.com/atomist/automation-seed-ts.git"},"homepage":"https://github.com/atomist/automation-seed-ts#readme","bugs":{"url":"https://github.com/atomist/automation-seed-ts/issues"},"keywords":["atomist","automation","seed"],"main":"./index.js","types":"./index.d.ts","dependencies":{"@atomist/automation-client":"^0.20.2","@types/app-root-path":"^1.2.4","app-root-path":"^2.0.1"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.5.7","@types/power-assert":"^1.5.0","espower-typescript":"^9.0.0","mocha":"^5.2.0","nodemon":"^1.18.3","npm-run-all":"^4.1.3","power-assert":"^1.6.0","rimraf":"^2.6.2","supervisor":"^0.12.0","ts-node":"^7.0.0","tslint":"^5.11.0","typedoc":"^0.11.1","typescript":"^2.9.2","typescript-formatter":"^7.2.2"},"directories":{"test":"test"},"scripts":{"autostart":"nodemon --watch index.ts,lib --ext ts --exec ts-node -- node_modules/@atomist/automation-client/start.client.js","autotest":"supervisor --watch index.ts,lib,test --extensions ts --no-restart-on exit --quiet --exec npm -- test","build":"run-s compile test lint doc","clean":"run-p clean:compile clean:doc clean:run","clean:compile":"rimraf git-info.json \"index.{d.ts,js{,.map}}\" \"{lib,test}/**/*.{d.ts,js{,.map}}\" lib/typings/types.ts","clean:dist":"run-s clean clean:npm","clean:doc":"rimraf doc","clean:npm":"rimraf node_modules","clean:run":"rimraf *-v8.log profile.txt log","compile":"run-s git:info gql:gen compile:ts","compile:ts":"tsc --project .","doc":"typedoc --mode modules --ignoreCompilerErrors --exclude \"**/*.d.ts\" --out doc index.ts lib","fmt":"tsfmt --replace","git:info":"node node_modules/@atomist/automation-client/start.git-info.js","gql:gen":"node node_modules/@atomist/automation-client/start.gql-gen.js","lint":"tslint --format verbose --project . --exclude \"{build,node_modules}/**\" --exclude \"**/*.d.ts\" \"**/*.ts\"","lint:fix":"npm run lint -- --fix","start":"node node_modules/@atomist/automation-client/start.client.js","test":"mocha --require espower-typescript/guess \"test/**/*.test.ts\"","test:one":"mocha --require espower-typescript/guess \"test/**/${TEST:-*.test.ts}\"","typedoc":"npm run doc"},"engines":{"node":">=8.0.0","npm":">=5.0.0"},"gitHead":"f82575241c0039f1ae0832fcf884c6200e89baa6","readme":"# @atomist/automation-seed\n\n[![npm version](https://badge.fury.io/js/%40atomist%2Fautomation-seed.svg)](https://badge.fury.io/js/%40atomist%2Fautomation-seed)\n\nThis repository contains examples demonstrating use of\nthe [Atomist][atomist] API.  You will find examples illustrating:\n\n-   Creating bot commands using _command handlers_\n-   Responding to DevOps events, e.g., commits pushed to a repository,\n    using _event handlers_\n\nThese examples use the [`@atomist/automation-client`][client] node\nmodule to implement a local client that connects to the Atomist API.\n\n[client]: https://github.com/atomist/automation-client-ts (@atomist/automation-client Node Module)\n\n## Prerequisites\n\nSee the [Atomist getting started][enrollment] documentation.\n\n[enrollment]: https://github.com/atomist/welcome/blob/master/enroll.md (Atomist - Getting Started)\n\nBelow are brief instructions on how to get started running this\nproject yourself.  If you just want to use the core functionality of\nAtomist, see the [Atomist documentation][docs].  For more detailed\ninformation on developing automations, see the [Atomist Developer\nGuide][dev].\n\n[docs]: https://docs.atomist.com/ (Atomist User Guide)\n[dev]: https://docs.atomist.com/developer/ (Atomist Developer Guide)\n\n### GitHub account\n\nYou must have a GitHub account, either GitHub.com or GitHub Enterprise\n(GHE).  If you want to use Atomist with GHE, please [contact\nAtomist](mailto:support@atomist.com).  The remainder of these\ninstructions assume you have a GitHub.com account.  If you do not\nalready have a GitHub.com account, you can [create\none][github-create].\n\nTo run automations, you will need a GitHub [personal access\ntoken][token] with \"read:org\" scope.  You can create one yourself or\nuse the Atomist CLI to do it for you (see below).\n\n[github-create]: https://github.com/join (Join GitHub)\n[token]: https://github.com/settings/tokens (GitHub Personal Access Tokens)\n\n### Atomist workspace\n\nYou also need to sign up with Atomist and create a workspace.  Once\nyou have a GitHub.com account, you can sign up with Atomist at\n[https://app.atomist.com/][atm-app].  Once you are registered with\nAtomist, you can create an Atomist workspace and add your GitHub user\nand/or organizations to that workspace.\n\nOnce you have created your Atomist workspace, take note of your\nAtomist workspace/team ID.  You can always find your Atomist workspace\nID on the workspace's settings page or, if you have added the Atomist\napp to Slack, you can send the Atomist bot the message `team` and it\nwill tell you the workspace/team ID.\n\n[atm-app]: https://app.atomist.com/ (Atomist Web Interface)\n\n### Slack\n\nAtomist has a powerful [Slack][slackhq] application, allowing you to\nsee and act on your development activity right in Slack.  Slack is not\na requirement for using Atomist, but if you try it, you'll probably\nlike it.  If you do not have access to a Slack team, it is easy to\n[create your own][slack-team].\n\nIn your Slack team, install the Atomist app in Slack, click the button\nbelow.\n\n<p align=\"center\">\n <a href=\"https://atm.st/2wiDlUe\">\n  <img alt=\"Add to Slack\" height=\"50\" width=\"174\" src=\"https://platform.slack-edge.com/img/add_to_slack@2x.png\" />\n </a>\n</p>\n\nOnce installed, the Atomist bot will guide you through connecting\nAtomist, Slack, and GitHub.\n\n[slackhq]: https://slack.com/ (Slack)\n[slack-team]: https://slack.com/get-started#create (Create a Slack Team)\n\n### Configuration\n\nOnce you have GitHub and Atomist set up, install the Atomist CLI and\nconfigure your local environment.\n\n```console\n$ npm install -g @atomist/automation-client\n$ atomist config\n```\n\nThe second command does two things: records what Atomist\nworkspace/team you want your automations running in and creates a\n[GitHub personal access token][token] with \"repo\" and \"read:org\"\nscopes.\n\nThe script will prompt you for your Atomist workspace/team ID, or you\ncan supply it using the `--team TEAM_ID` command-line option.  You can\nget your Atomist team ID from the settings page for your Atomist\nworkspace or by typing `team` in a DM to the Atomist bot.\n\nThe script will prompt you for your GitHub credentials.  It needs them\nto create the GitHub personal access token.  Atomist does not store\nyour credentials and only writes the generated token to your local\nmachine.\n\nThe Atomist API client authenticates using a GitHub personal access\ntoken.  The Atomist API uses the token to confirm you are who you say\nyou are and are in a GitHub organization connected to the Slack team\nin which you are running the automations.  In addition, it uses the\ntoken when performing any operations that access the GitHub API.\n\n## Running\n\nYou can run this automation using its Docker container, e.g., in\nKubernetes, or locally.\n\n### Docker and Kubernetes\n\nTo download and run the Docker image of this project, run the\nfollowing command\n\n```console\n$ docker run --rm -e ATOMIST_TOKEN=YOUR_TOKEN -e ATOMIST_TEAMS=TEAM_ID \\\n    atomist/automation-seed-ts:VERSION\n```\n\nreplacing `YOUR_TOKEN` and `TEAM_ID` with the token and team ID from\nyour `~/.atomist/client.config.json` created above by the `atomist\nconfig` command and `VERSION` with the [latest release of this\nrepo][latest].  Note that this will not be running any code from your\nlocal machine but the code in the Docker image.\n\nTo run the Docker image in a Kubernetes cluster, you can use the\n[deployment spec](assets/kube/deployment.yaml) from this repository as\na starting point.  Before creating the deployment resource, you will\nneed to create a secret with the following command, replacing `TOKEN`\nand `TEAM_ID` as above.\n\n```console\n$ kubectl create secret generic automation --from-file=$HOME/.atomist/client.config.json\n$ kubectl create -f assets/kube/deployment.yaml\n```\n\n[latest]: https://github.com/atomist/automation-seed-ts/releases/latest\n\n### Locally\n\nYou will need to have [Node.js][node] installed.  To verify that the\nright versions are installed, run:\n\n```console\n$ node -v\nv9.7.1\n$ npm -v\n5.6.0\n```\n\nThe `node` version should be 8 or greater and the `npm` version should\nbe 5 or greater.\n\n[node]: https://nodejs.org/ (Node.js)\n\n#### Cloning the repository and installing dependencies\n\nTo get started run the following commands to clone the project,\ninstall its dependencies, and build the project:\n\n```console\n$ git clone git@github.com:atomist/automation-seed-ts.git\n$ cd automation-seed-ts\n$ npm install\n$ npm run build\n```\n\n#### Starting up the automation-client\n\nYou can run this repository locally, allowing you to change the source\ncode of this project and immediately see the effects in your environment\nwith the following command\n\n```console\n$ npm run autostart\n```\n\nTo run in a more traditional manner, build the project and then simple\nstart it.\n\n```console\n$ npm start\n```\n\n## Using\n\n### Invoking a command handler from Slack\n\nThis project contains the code to create and respond to a simple\n`hello world` bot command.  The code that defines the bot command and\nimplements responding to the command, i.e., the _command handler_, can\nbe found in [`HelloWorld.ts`][hello].  Once you have your local\nautomation client running (the previous step in this guide), you can\ninvoke the command handler by sending the Atomist bot the command as a\nmessage.  Be sure the Atomist bot is in the channel before sending it\nthe message.\n\n```\n/invite @atomist\n@atomist hello world\n```\n\nOnce you've submitted the command in Slack, you'll see the incoming\nand outgoing messages show up in the logs of your locally running\nautomation-client.  Ultimately, you should see the response from the\nbot in Slack.\n\n[hello]: https://github.com/atomist/automation-seed-ts/blob/master/src/commands/HelloWorld.ts (HelloWorld Command Handler)\n\nFeel free to modify the code in the `HelloWorld` command handler,\nNode.js will automatically reload the client, and see what happens!\n\n### Triggering an event handler\n\nWhile command handlers respond to commands you send the Atomist bot,\n_event handlers_ take action when different types of events occur in\nyour development and operations environment.  Some examples of events\nare commits pushed to a repo, or a CI build that fails, or an instance\nof a running service that becomes unhealthy.  Example responses to those\nevents are showing the commits in a Slack message, automatically\nrestarting the build, and triggering a PagerDuty alert, respectively.\n\nThe sample event handler in this project, [NotifyOnPush][nop-handler],\nwill notice when someone pushes new commits to a repository in the\nGitHub organization and send a notice of that push to all Slack\nchannels associated with that repository.\n\nIf you have followed the instructions above and are running these\nautomations against the atomist-playground Slack team and GitHub\norganization, go ahead and edit the [notify-on-push][nop-repo]\nrepository by adding some text to its [README][nop-readme].  Once you\nhave saved your changes, you should see that event appear in the\nconsole logs of your locally running automation client, followed by a\nlog of the actions the event handler is taking.  Once those actions\nare complete, you should see a new message in the\n[`#notify-on-push`][nop-channel] channel in the atomist-playground\nSlack team.\n\n[nop-handler]: https://github.com/atomist/automation-seed-ts/blob/master/src/events/NotifyOnPush.ts (Atomist NotifyOnPush Event Handler)\n[nop-repo]: https://github.com/atomist-playground/notify-on-push (Atomist NotifyOnPush Repository)\n[nop-readme]: https://github.com/atomist-playground/notify-on-push/edit/master/README.md (Edit NotifyOnPush README)\n[nop-channel]: https://atomist-playground.slack.com/messages/C7GNF6743/ (NotifyOnPush Slack Channel)\n\n## Support\n\nGeneral support questions should be discussed in the `#support`\nchannel in our community Slack team\nat [atomist-community.slack.com][slack].\n\nIf you find a problem, please create an [issue][].\n\n[issue]: https://github.com/atomist/automation-seed-ts/issues\n\n## Development\n\nYou will need to install [node][] to build and test this project.\n\n### Build and Test\n\nCommand | Reason\n------- | ------\n`npm install` | install all the required packages\n`npm run build` | lint, compile, and test\n`npm start` | start the Atomist automation client\n`npm run autostart` | run the client, refreshing when files change\n`npm run lint` | run tslint against the TypeScript\n`npm run compile` | compile all TypeScript into JavaScript\n`npm test` | run tests and ensure everything is working\n`npm run autotest` | run tests continuously\n`npm run clean` | remove stray compiled JavaScript files and build directory\n\n### Release\n\nReleases are managed by the [Atomist SDM][atomist-sdm].  Press the\n\"Release\" button in the Atomist dashboard or Slack.\n\n[atomist-sdm]: https://github.com/atomist/atomist-sdm (Atomist Software Delivery Machine)\n\n---\n\nCreated by [Atomist][atomist].\nNeed Help?  [Join our Slack team][slack].\n\n[atomist]: https://atomist.com/ (Atomist - How Teams Deliver Software)\n[slack]: https://join.atomist.com/ (Atomist Community Slack)\n","readmeFilename":"README.md","_id":"@atomist/automation-seed@0.11.0-20180816174223","_npmVersion":"6.3.0","_nodeVersion":"9.11.2","_npmUser":{"name":"atomist","email":"npm@atomist.com"},"dist":{"integrity":"sha512-duyFRVJdjp/ZL1/wlv84cknFCcD7b/jf4ZhUafy5nbhYBWJKxg3sWsBejRU9bvyCK5X18bH5k1cGSu1PI++84g==","shasum":"59d2516f02362df4307fe9c52e17ad968a5cefc1","tarball":"https://registry.npmjs.org/@atomist/automation-seed/-/automation-seed-0.11.0-20180816174223.tgz","fileCount":25,"unpackedSize":178253,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbdbhGCRA9TVsSAnZWagAASogP/0+od41z7gCXo8UNYQKY\nIc0Tqdh62w0Vp7fwiAcpiEEVvwZBSvH4svQll//aWeQFgou8DjcFH9oWZ8e1\nWaNUHyiiGI1BfcVHcu0cdRXyqd4pHA12lXjt71ZJLCKv5uYB3hmzHxCWFt6+\noRcLaqd98ifYNGjFrtSpJkcyd+y5kNx4HdMmbnxmRRoBBO2p6vyEMlEvQlIz\npPoAN1iFPpENJFQ0FEMOIvb9jt3YqngK6m/jHA2S78S53ry7uMarP0hlvIVc\nL0OzhIOjZkwu3o5cQjp79+0LAwkU+KJ5LhYNcKFNIt51OJFvQKMfs8pBDOlF\nOl50bOpYkJ6PxXSRyaxsreIdCs5eXGOOv+bcsRJmmYLYR1OPgDyoVsDDYsXV\nW8LBvsZv0+9umVN5BANYUQ2+EivdG4bjNnoWemJVU6LkaA4E3XXaOUfy318o\nq1TTJyTARwSMOR/SjEKi7LHnZJhqOkJ3vq9LGslYuz6CYPuq+buHXdBqhROP\n3VOC00M1cJvxF8zZYk2ROk5n1sLxFDutwBunNofLbcKTUU+jtNRgRRu1Y5Dp\nL/aDK9Rq3rhpG0siazPXzrUgxiyGC4IuUmF6qpd34IA8Mga52+mDkbPpmClJ\n9GN+1CG0I8+893hRTk3+AY8oPnc7oe60nc481aV0LnMudIEmim003Nap5V68\nC/Il\r\n=J9QC\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIG5p5i65wAwcjkqE4bSMZPQA2bobqMh6Wv6pROaHzJ9HAiBJyzPzLxakAA5trqATggR3NTo3dCiclFnCmm9uCnNQGw=="}]},"maintainers":[{"name":"atomist","email":"npm@atomist.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/automation-seed_0.11.0-20180816174223_1534441541949_0.8887327141431953"},"_hasShrinkwrap":false},"0.11.0-20180816194654":{"name":"@atomist/automation-seed","version":"0.11.0-20180816194654","description":"Atomist automation client seed project","author":{"name":"Atomist"},"license":"Apache-2.0","repository":{"type":"git","url":"git+https://github.com/atomist/automation-seed-ts.git"},"homepage":"https://github.com/atomist/automation-seed-ts#readme","bugs":{"url":"https://github.com/atomist/automation-seed-ts/issues"},"keywords":["atomist","automation","seed"],"main":"./index.js","types":"./index.d.ts","dependencies":{"@atomist/automation-client":"^0.20.3","@types/app-root-path":"^1.2.4","app-root-path":"^2.0.1"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.5.7","@types/power-assert":"^1.5.0","espower-typescript":"^9.0.0","mocha":"^5.2.0","nodemon":"^1.18.3","npm-run-all":"^4.1.3","power-assert":"^1.6.0","rimraf":"^2.6.2","supervisor":"^0.12.0","ts-node":"^7.0.0","tslint":"^5.11.0","typedoc":"^0.11.1","typescript":"^2.9.2","typescript-formatter":"^7.2.2"},"directories":{"test":"test"},"scripts":{"autostart":"nodemon --watch index.ts,lib --ext ts --exec ts-node -- node_modules/@atomist/automation-client/start.client.js","autotest":"supervisor --watch index.ts,lib,test --extensions ts --no-restart-on exit --quiet --exec npm -- test","build":"run-s compile test lint doc","clean":"run-p clean:compile clean:doc clean:run","clean:compile":"rimraf git-info.json \"index.{d.ts,js{,.map}}\" \"{lib,test}/**/*.{d.ts,js{,.map}}\" lib/typings/types.ts","clean:dist":"run-s clean clean:npm","clean:doc":"rimraf doc","clean:npm":"rimraf node_modules","clean:run":"rimraf *-v8.log profile.txt log","compile":"run-s git:info gql:gen compile:ts","compile:ts":"tsc --project .","doc":"typedoc --mode modules --ignoreCompilerErrors --exclude \"**/*.d.ts\" --out doc index.ts lib","fmt":"tsfmt --replace","git:info":"node node_modules/@atomist/automation-client/start.git-info.js","gql:gen":"node node_modules/@atomist/automation-client/start.gql-gen.js","lint":"tslint --format verbose --project . --exclude \"{build,node_modules}/**\" --exclude \"**/*.d.ts\" \"**/*.ts\"","lint:fix":"npm run lint -- --fix","start":"node node_modules/@atomist/automation-client/start.client.js","test":"mocha --require espower-typescript/guess \"test/**/*.test.ts\"","test:one":"mocha --require espower-typescript/guess \"test/**/${TEST:-*.test.ts}\"","typedoc":"npm run doc"},"engines":{"node":">=8.0.0","npm":">=5.0.0"},"gitHead":"c45ad970e3fa9cb5db6500779bbbaf10dd2a5b42","readme":"# @atomist/automation-seed\n\n[![npm version](https://badge.fury.io/js/%40atomist%2Fautomation-seed.svg)](https://badge.fury.io/js/%40atomist%2Fautomation-seed)\n\nThis repository contains examples demonstrating use of\nthe [Atomist][atomist] API.  You will find examples illustrating:\n\n-   Creating bot commands using _command handlers_\n-   Responding to DevOps events, e.g., commits pushed to a repository,\n    using _event handlers_\n\nThese examples use the [`@atomist/automation-client`][client] node\nmodule to implement a local client that connects to the Atomist API.\n\n[client]: https://github.com/atomist/automation-client-ts (@atomist/automation-client Node Module)\n\n## Prerequisites\n\nSee the [Atomist getting started][enrollment] documentation.\n\n[enrollment]: https://github.com/atomist/welcome/blob/master/enroll.md (Atomist - Getting Started)\n\nBelow are brief instructions on how to get started running this\nproject yourself.  If you just want to use the core functionality of\nAtomist, see the [Atomist documentation][docs].  For more detailed\ninformation on developing automations, see the [Atomist Developer\nGuide][dev].\n\n[docs]: https://docs.atomist.com/ (Atomist User Guide)\n[dev]: https://docs.atomist.com/developer/ (Atomist Developer Guide)\n\n### GitHub account\n\nYou must have a GitHub account, either GitHub.com or GitHub Enterprise\n(GHE).  If you want to use Atomist with GHE, please [contact\nAtomist](mailto:support@atomist.com).  The remainder of these\ninstructions assume you have a GitHub.com account.  If you do not\nalready have a GitHub.com account, you can [create\none][github-create].\n\nTo run automations, you will need a GitHub [personal access\ntoken][token] with \"read:org\" scope.  You can create one yourself or\nuse the Atomist CLI to do it for you (see below).\n\n[github-create]: https://github.com/join (Join GitHub)\n[token]: https://github.com/settings/tokens (GitHub Personal Access Tokens)\n\n### Atomist workspace\n\nYou also need to sign up with Atomist and create a workspace.  Once\nyou have a GitHub.com account, you can sign up with Atomist at\n[https://app.atomist.com/][atm-app].  Once you are registered with\nAtomist, you can create an Atomist workspace and add your GitHub user\nand/or organizations to that workspace.\n\nOnce you have created your Atomist workspace, take note of your\nAtomist workspace/team ID.  You can always find your Atomist workspace\nID on the workspace's settings page or, if you have added the Atomist\napp to Slack, you can send the Atomist bot the message `team` and it\nwill tell you the workspace/team ID.\n\n[atm-app]: https://app.atomist.com/ (Atomist Web Interface)\n\n### Slack\n\nAtomist has a powerful [Slack][slackhq] application, allowing you to\nsee and act on your development activity right in Slack.  Slack is not\na requirement for using Atomist, but if you try it, you'll probably\nlike it.  If you do not have access to a Slack team, it is easy to\n[create your own][slack-team].\n\nIn your Slack team, install the Atomist app in Slack, click the button\nbelow.\n\n<p align=\"center\">\n <a href=\"https://atm.st/2wiDlUe\">\n  <img alt=\"Add to Slack\" height=\"50\" width=\"174\" src=\"https://platform.slack-edge.com/img/add_to_slack@2x.png\" />\n </a>\n</p>\n\nOnce installed, the Atomist bot will guide you through connecting\nAtomist, Slack, and GitHub.\n\n[slackhq]: https://slack.com/ (Slack)\n[slack-team]: https://slack.com/get-started#create (Create a Slack Team)\n\n### Configuration\n\nOnce you have GitHub and Atomist set up, install the Atomist CLI and\nconfigure your local environment.\n\n```console\n$ npm install -g @atomist/automation-client\n$ atomist config\n```\n\nThe second command does two things: records what Atomist\nworkspace/team you want your automations running in and creates a\n[GitHub personal access token][token] with \"repo\" and \"read:org\"\nscopes.\n\nThe script will prompt you for your Atomist workspace/team ID, or you\ncan supply it using the `--team TEAM_ID` command-line option.  You can\nget your Atomist team ID from the settings page for your Atomist\nworkspace or by typing `team` in a DM to the Atomist bot.\n\nThe script will prompt you for your GitHub credentials.  It needs them\nto create the GitHub personal access token.  Atomist does not store\nyour credentials and only writes the generated token to your local\nmachine.\n\nThe Atomist API client authenticates using a GitHub personal access\ntoken.  The Atomist API uses the token to confirm you are who you say\nyou are and are in a GitHub organization connected to the Slack team\nin which you are running the automations.  In addition, it uses the\ntoken when performing any operations that access the GitHub API.\n\n## Running\n\nYou can run this automation using its Docker container, e.g., in\nKubernetes, or locally.\n\n### Docker and Kubernetes\n\nTo download and run the Docker image of this project, run the\nfollowing command\n\n```console\n$ docker run --rm -e ATOMIST_TOKEN=YOUR_TOKEN -e ATOMIST_TEAMS=TEAM_ID \\\n    atomist/automation-seed-ts:VERSION\n```\n\nreplacing `YOUR_TOKEN` and `TEAM_ID` with the token and team ID from\nyour `~/.atomist/client.config.json` created above by the `atomist\nconfig` command and `VERSION` with the [latest release of this\nrepo][latest].  Note that this will not be running any code from your\nlocal machine but the code in the Docker image.\n\nTo run the Docker image in a Kubernetes cluster, you can use the\n[deployment spec](assets/kube/deployment.yaml) from this repository as\na starting point.  Before creating the deployment resource, you will\nneed to create a secret with the following command, replacing `TOKEN`\nand `TEAM_ID` as above.\n\n```console\n$ kubectl create secret generic automation --from-file=$HOME/.atomist/client.config.json\n$ kubectl create -f assets/kube/deployment.yaml\n```\n\n[latest]: https://github.com/atomist/automation-seed-ts/releases/latest\n\n### Locally\n\nYou will need to have [Node.js][node] installed.  To verify that the\nright versions are installed, run:\n\n```console\n$ node -v\nv9.7.1\n$ npm -v\n5.6.0\n```\n\nThe `node` version should be 8 or greater and the `npm` version should\nbe 5 or greater.\n\n[node]: https://nodejs.org/ (Node.js)\n\n#### Cloning the repository and installing dependencies\n\nTo get started run the following commands to clone the project,\ninstall its dependencies, and build the project:\n\n```console\n$ git clone git@github.com:atomist/automation-seed-ts.git\n$ cd automation-seed-ts\n$ npm install\n$ npm run build\n```\n\n#### Starting up the automation-client\n\nYou can run this repository locally, allowing you to change the source\ncode of this project and immediately see the effects in your environment\nwith the following command\n\n```console\n$ npm run autostart\n```\n\nTo run in a more traditional manner, build the project and then simple\nstart it.\n\n```console\n$ npm start\n```\n\n## Using\n\n### Invoking a command handler from Slack\n\nThis project contains the code to create and respond to a simple\n`hello world` bot command.  The code that defines the bot command and\nimplements responding to the command, i.e., the _command handler_, can\nbe found in [`HelloWorld.ts`][hello].  Once you have your local\nautomation client running (the previous step in this guide), you can\ninvoke the command handler by sending the Atomist bot the command as a\nmessage.  Be sure the Atomist bot is in the channel before sending it\nthe message.\n\n```\n/invite @atomist\n@atomist hello world\n```\n\nOnce you've submitted the command in Slack, you'll see the incoming\nand outgoing messages show up in the logs of your locally running\nautomation-client.  Ultimately, you should see the response from the\nbot in Slack.\n\n[hello]: https://github.com/atomist/automation-seed-ts/blob/master/src/commands/HelloWorld.ts (HelloWorld Command Handler)\n\nFeel free to modify the code in the `HelloWorld` command handler,\nNode.js will automatically reload the client, and see what happens!\n\n### Triggering an event handler\n\nWhile command handlers respond to commands you send the Atomist bot,\n_event handlers_ take action when different types of events occur in\nyour development and operations environment.  Some examples of events\nare commits pushed to a repo, or a CI build that fails, or an instance\nof a running service that becomes unhealthy.  Example responses to those\nevents are showing the commits in a Slack message, automatically\nrestarting the build, and triggering a PagerDuty alert, respectively.\n\nThe sample event handler in this project, [NotifyOnPush][nop-handler],\nwill notice when someone pushes new commits to a repository in the\nGitHub organization and send a notice of that push to all Slack\nchannels associated with that repository.\n\nIf you have followed the instructions above and are running these\nautomations against the atomist-playground Slack team and GitHub\norganization, go ahead and edit the [notify-on-push][nop-repo]\nrepository by adding some text to its [README][nop-readme].  Once you\nhave saved your changes, you should see that event appear in the\nconsole logs of your locally running automation client, followed by a\nlog of the actions the event handler is taking.  Once those actions\nare complete, you should see a new message in the\n[`#notify-on-push`][nop-channel] channel in the atomist-playground\nSlack team.\n\n[nop-handler]: https://github.com/atomist/automation-seed-ts/blob/master/src/events/NotifyOnPush.ts (Atomist NotifyOnPush Event Handler)\n[nop-repo]: https://github.com/atomist-playground/notify-on-push (Atomist NotifyOnPush Repository)\n[nop-readme]: https://github.com/atomist-playground/notify-on-push/edit/master/README.md (Edit NotifyOnPush README)\n[nop-channel]: https://atomist-playground.slack.com/messages/C7GNF6743/ (NotifyOnPush Slack Channel)\n\n## Support\n\nGeneral support questions should be discussed in the `#support`\nchannel in our community Slack team\nat [atomist-community.slack.com][slack].\n\nIf you find a problem, please create an [issue][].\n\n[issue]: https://github.com/atomist/automation-seed-ts/issues\n\n## Development\n\nYou will need to install [node][] to build and test this project.\n\n### Build and Test\n\nCommand | Reason\n------- | ------\n`npm install` | install all the required packages\n`npm run build` | lint, compile, and test\n`npm start` | start the Atomist automation client\n`npm run autostart` | run the client, refreshing when files change\n`npm run lint` | run tslint against the TypeScript\n`npm run compile` | compile all TypeScript into JavaScript\n`npm test` | run tests and ensure everything is working\n`npm run autotest` | run tests continuously\n`npm run clean` | remove stray compiled JavaScript files and build directory\n\n### Release\n\nReleases are managed by the [Atomist SDM][atomist-sdm].  Press the\n\"Release\" button in the Atomist dashboard or Slack.\n\n[atomist-sdm]: https://github.com/atomist/atomist-sdm (Atomist Software Delivery Machine)\n\n---\n\nCreated by [Atomist][atomist].\nNeed Help?  [Join our Slack team][slack].\n\n[atomist]: https://atomist.com/ (Atomist - How Teams Deliver Software)\n[slack]: https://join.atomist.com/ (Atomist Community Slack)\n","readmeFilename":"README.md","_id":"@atomist/automation-seed@0.11.0-20180816194654","_npmVersion":"6.3.0","_nodeVersion":"9.11.2","_npmUser":{"name":"atomist","email":"npm@atomist.com"},"dist":{"integrity":"sha512-mh2r/yvUbuS1epL7g/a4DeG5kbblhsR7vHVQDMZM6CWc8r+TISycj3MLnc8AAAJ1JrtQYq29h6Wuylm/0o14WQ==","shasum":"12448056dcf40bfa1722a92a72a3d4b9e288cbaa","tarball":"https://registry.npmjs.org/@atomist/automation-seed/-/automation-seed-0.11.0-20180816194654.tgz","fileCount":25,"unpackedSize":178628,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbddVzCRA9TVsSAnZWagAA90oP/2xZm5EXgChsLplZ+Crc\nVJsno2tXEIrraoatYBi8gx+fLmBx0hE4nt0xlAW26hs2atvyLxHpPOwAtqH0\nxzHTW0vUKz8cZ9jY1fzprXjIq/P37Crx6E6A9rsZe9VLR/BYMl+cgUR72ahC\neLwe8Hv018QLyi1uLY2y6KQLIi/kpCXf2GzZ9eIFdaSaE08uQ9H9gIYv9d04\n3146C41K+YJaevf72VpPxgHaZtgAz5YAZyNW7u3qV7HcHnQaEjrmfVwzbWDy\nNOJ5LdwzK2V3qKq2BuBY7O7gA7QZtaWkH3/FLOUrY9uBf/J4uSZQp+9Fm9QE\nUE/DOqfIEec1s3y2Difw3a7Ron2qvhQutE19U85WuUVEtbenomNXoNWTjniV\n54A7zai9dSp01s1WHK3DTM8KlLn9FwgyUZ/l+yu3ECbF58JzLyU68e1h6JNh\n0qc5/Z423W5RyDMl5IVe5SzO2jHUtz/jesYNFV70w/B8Ca2uBu8PZgJ8qMdZ\n11XEJLgkoc/q0nz0OVyZFyeNsQdybylhFM9W9sxAgrhSgiH1yFUnpHVOmwY9\nPdcy+RV1OxQR9kxYF8SU9G+1GWKUiCSCohVqs1e8D4AIUFiksitu33GBz6iV\n3tH8yKYd8r2OFtoroOBYqwpNLUphMR7uju5VLEIn+wUisMP6HEwMsVkAdupJ\nkD3B\r\n=mdwV\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIB+NGueiJVu04HdOqkXfDZ1z+7xwrQ0Drs7gXl9YFcTnAiB44C8boiWOv0e9Xs5idKOIqnCOTrmVQqkpFvZT7exQtQ=="}]},"maintainers":[{"name":"atomist","email":"npm@atomist.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/automation-seed_0.11.0-20180816194654_1534449011550_0.14390424138847457"},"_hasShrinkwrap":false},"0.11.0-20180817134623":{"name":"@atomist/automation-seed","version":"0.11.0-20180817134623","description":"Atomist automation client seed project","author":{"name":"Atomist"},"license":"Apache-2.0","repository":{"type":"git","url":"git+https://github.com/atomist/automation-seed-ts.git"},"homepage":"https://github.com/atomist/automation-seed-ts#readme","bugs":{"url":"https://github.com/atomist/automation-seed-ts/issues"},"keywords":["atomist","automation","seed"],"main":"./index.js","types":"./index.d.ts","dependencies":{"@atomist/automation-client":"^0.20.3","@types/app-root-path":"^1.2.4","app-root-path":"^2.0.1"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.5.7","@types/power-assert":"^1.5.0","espower-typescript":"^9.0.0","mocha":"^5.2.0","nodemon":"^1.18.3","npm-run-all":"^4.1.3","power-assert":"^1.6.0","rimraf":"^2.6.2","supervisor":"^0.12.0","ts-node":"^7.0.0","tslint":"^5.11.0","typedoc":"^0.11.1","typescript":"^2.9.2","typescript-formatter":"^7.2.2"},"directories":{"test":"test"},"scripts":{"autostart":"nodemon --watch index.ts,lib --ext ts --exec ts-node -- node_modules/@atomist/automation-client/start.client.js","autotest":"supervisor --watch index.ts,lib,test --extensions ts --no-restart-on exit --quiet --exec npm -- test","build":"run-s compile test lint doc","clean":"run-p clean:compile clean:doc clean:run","clean:compile":"rimraf git-info.json \"index.{d.ts,js{,.map}}\" \"{lib,test}/**/*.{d.ts,js{,.map}}\" lib/typings/types.ts","clean:dist":"run-s clean clean:npm","clean:doc":"rimraf doc","clean:npm":"rimraf node_modules","clean:run":"rimraf *-v8.log profile.txt log","compile":"run-s git:info gql:gen compile:ts","compile:ts":"tsc --project .","doc":"typedoc --mode modules --ignoreCompilerErrors --exclude \"**/*.d.ts\" --out doc index.ts lib","fmt":"tsfmt --replace","git:info":"node node_modules/@atomist/automation-client/start.git-info.js","gql:gen":"node node_modules/@atomist/automation-client/start.gql-gen.js","lint":"tslint --format verbose --project . --exclude \"{build,node_modules}/**\" --exclude \"**/*.d.ts\" \"**/*.ts\"","lint:fix":"npm run lint -- --fix","start":"node node_modules/@atomist/automation-client/start.client.js","test":"mocha --require espower-typescript/guess \"test/**/*.test.ts\"","test:one":"mocha --require espower-typescript/guess \"test/**/${TEST:-*.test.ts}\"","typedoc":"npm run doc"},"engines":{"node":">=8.0.0","npm":">=5.0.0"},"gitHead":"8e1c159c3ac8d85b634a384d5c2ccdbba9d45c2c","readme":"# @atomist/automation-seed\n\n[![npm version](https://badge.fury.io/js/%40atomist%2Fautomation-seed.svg)](https://badge.fury.io/js/%40atomist%2Fautomation-seed)\n\nThis repository contains examples demonstrating use of the\n[Atomist][atomist] API for software.  You will find examples\nillustrating:\n\n-   Creating bot commands using _command handlers_\n-   Responding to DevOps events, e.g., commits pushed to a repository,\n    using _event handlers_\n\nThese examples use the [`@atomist/automation-client`][client] node\nmodule to implement a local client that connects to the Atomist API\nfor software.  See the [Atomist documentation][atomist-doc] for more\ninformation about Atomist, software delivery machines (SDM), and the\nAtomist API for software.\n\n[client]: https://github.com/atomist/automation-client-ts (@atomist/automation-client Node Module)\n[atomist-doc]: https://docs.atomist.com/ (Atomist Documentation)\n\n## Prerequisites\n\nBefore you can run this project, you will need an Atomist workspace.\nSee the [Atomist Getting Started Guide][atomist-start] for\ninstructions on how to get an Atomist workspace and connect it to your\nsource code repositories, continuous integration, chat platform, etc.\n\nYou will also need several other prerequisites to successfully run\nthis project.  See the [Atomist Developer Guide][atomist-dev] for\ninstructions on setting up your development environment.  Briefly, you\nwill need [Git][git], [Node.js][node], and the [Atomist\nCLI][atomist-cli] installed and properly configured on your system.\n\n[atomist-start]: https://docs.atomist.com/user/ (Atomist - Getting Started)\n[atomist-dev]: https://docs.atomist.com/developer/prerequisites/ (Atomist - Developer Prerequisites)\n[git]: https://git-scm.com/ (Git)\n[node]: https://nodejs.org/ (Node.js)\n[atomist-cli]: https://github.com/atomist/cli (Atomist Command-Line Interface)\n\n## Running\n\nOnce the prerequisites are met on your system, use `npm` to install\ndependencies and build the project.\n\n```\n$ npm install\n$ npm run build\n```\n\nYou can start up your SDM in the usual `npm` way.\n\n```\n$ npm start\n```\n\nThe [Atomist API Client documentation][atomist-client] has more\ncomplete instructions for running an SDM or other Atomist API client.\n\n[atomist-client]: https://docs.atomist.com/developer/client/ (Atomist - API Client)\n\n## Using\n\n### Invoking a command handler from Slack\n\nThis project contains the code to create and respond to a simple\n`hello world` bot command.  The code that defines the bot command and\nimplements responding to the command, i.e., the _command handler_, can\nbe found in [`HelloWorld.ts`][hello].  Once you have your local\nautomation client running (the previous step in this guide), you can\ninvoke the command handler by sending the Atomist bot the command as a\nmessage.  Be sure the Atomist bot is in the channel before sending it\nthe message.\n\n```\n/invite @atomist\n@atomist hello world\n```\n\nOnce you've submitted the command in Slack, you'll see the incoming\nand outgoing messages show up in the logs of your locally running\nautomation-client.  Ultimately, you should see the response from the\nbot in Slack.\n\n[hello]: https://github.com/atomist/automation-seed-ts/blob/master/src/commands/HelloWorld.ts (HelloWorld Command Handler)\n\nFeel free to modify the code in the `HelloWorld` command handler,\nNode.js will automatically reload the client, and see what happens!\n\n### Triggering an event handler\n\nWhile command handlers respond to commands you send the Atomist bot,\n_event handlers_ take action when different types of events occur in\nyour development and operations environment.  Some examples of events\nare commits pushed to a repo, or a CI build that fails, or an instance\nof a running service that becomes unhealthy.  Example responses to those\nevents are showing the commits in a Slack message, automatically\nrestarting the build, and triggering a PagerDuty alert, respectively.\n\nThe sample event handler in this project, [NotifyOnPush][nop-handler],\nwill notice when someone pushes new commits to a repository in the\nGitHub organization and send a notice of that push to all Slack\nchannels associated with that repository.\n\nIf you have followed the instructions above and are running these\nautomations against the atomist-playground Slack team and GitHub\norganization, go ahead and edit the [notify-on-push][nop-repo]\nrepository by adding some text to its [README][nop-readme].  Once you\nhave saved your changes, you should see that event appear in the\nconsole logs of your locally running automation client, followed by a\nlog of the actions the event handler is taking.  Once those actions\nare complete, you should see a new message in the\n[`#notify-on-push`][nop-channel] channel in the atomist-playground\nSlack team.\n\n[nop-handler]: https://github.com/atomist/automation-seed-ts/blob/master/src/events/NotifyOnPush.ts (Atomist NotifyOnPush Event Handler)\n[nop-repo]: https://github.com/atomist-playground/notify-on-push (Atomist NotifyOnPush Repository)\n[nop-readme]: https://github.com/atomist-playground/notify-on-push/edit/master/README.md (Edit NotifyOnPush README)\n[nop-channel]: https://atomist-playground.slack.com/messages/C7GNF6743/ (NotifyOnPush Slack Channel)\n\n## Support\n\nGeneral support questions should be discussed in the `#support`\nchannel in the [Atomist community Slack workspace][slack].\n\nIf you find a problem, please create an [issue][].\n\n[issue]: https://github.com/atomist/automation-seed-ts/issues\n\n## Development\n\nYou will need to install [node][] to build and test this project.\n\n### Build and Test\n\nUse the following package scripts to build, test, and perform other\ndevelopment tasks.\n\nCommand | Reason\n------- | ------\n`npm install` | install project dependencies\n`npm run build` | compile, test, lint, and generate docs\n`npm start` | start the Atomist API client\n`npm run autostart` | run the client, refreshing when files change\n`npm run lint` | run TSLint against the TypeScript\n`npm run compile` | generate types from GraphQL and compile TypeScript\n`npm test` | run tests\n`npm run autotest` | run tests every time a file changes\n`npm run clean` | remove files generated during the build\n\n### Release\n\nReleases are managed by the [Atomist SDM][atomist-sdm].  Press the\nrelease button in the Atomist dashboard or Slack.\n\n[atomist-sdm]: https://github.com/atomist/atomist-sdm (Atomist Software Delivery Machine)\n\n---\n\nCreated by [Atomist][atomist].\nNeed Help?  [Join our Slack team][slack].\n\n[atomist]: https://atomist.com/ (Atomist - How Teams Deliver Software)\n[slack]: https://join.atomist.com/ (Atomist Community Slack)\n","readmeFilename":"README.md","_id":"@atomist/automation-seed@0.11.0-20180817134623","_npmVersion":"6.3.0","_nodeVersion":"9.11.2","_npmUser":{"name":"atomist","email":"npm@atomist.com"},"dist":{"integrity":"sha512-q8yYwNu1XVEt0NaysWFf3W0iwmen+/jRc1uUONmT6NLAlObtWfC9aP/EPBoO7tGtg8cqLhQ78ZQEfJHEX7EJsQ==","shasum":"0b5fb39dc581d5827c9d3fa75b45d1ac6cedf54f","tarball":"https://registry.npmjs.org/@atomist/automation-seed/-/automation-seed-0.11.0-20180817134623.tgz","fileCount":25,"unpackedSize":174426,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbdtJ0CRA9TVsSAnZWagAAWTwP/1f00ePlokNtLpjCZaJ1\n1Gv57BCD7IIDOsGFxvdYWjHDmpcjLE8wO/ix6KvP7AlU5O6e7pU0SYjjLbSH\n6B2Dlp+5Qdn6nIhf2j3ePyi9XwPGAy1ttEJtcsJzIJmYWhw/m75YVnS71zq2\noygG1IP9N8wEXwzJ+jUOcaD5hYmYadd5dqHCgK7TsGusO0lc21QzrvNuYbDG\npogWv4ZZ3jYqd/L183wkzzdfGV98eJPH658ttCV07oB0zZVhd/g8shiS46XR\n5uqtcNnQygPoURnnu2vtZ3K8/DYfdzVqhUhSLv6KiAotQhVY7or2RtOXB/8y\n2Xwdd+3ymv60sBVWPOk5f1CK1tRsm9e1JwrnskDlcYQ3CxzMy8a8hUirIbU0\ngyGMfSWfZgZ/S/jAy9XLq8QyuibL5M6LCT5kqQhGOkH3SE61XEwk9+GNeKn6\nFH4JB1+FwB8WP9gnITMhGkWchuasPe/k3mRB68qlN11rX8JZxQBJEWxOcsVC\nJi20Z9nueftNN0c7rIxTmPgUKWHHREf+5/g5gnlipQFV5n4ONvPMt7pw8GOr\n/W3JpiYBDQthSnaMr0oHj4NH0e/7YMnnNAWTbJiJbGTivl+/xDi+HOw6Ls2A\neEPTDNemDJC333GRcL85k/P5hGy+Nn0n1yDCOP57txhHsd2OggByXwbJ4YFz\nyxOr\r\n=/1PH\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHzSA8zjF3NLvVZiB93bdibo3sdX73/L+Xdat9I/S3ERAiEAx7pHvLWc+YT29xTLL6I1ycGSEIomKczo8YRUvciDyXE="}]},"maintainers":[{"name":"atomist","email":"npm@atomist.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/automation-seed_0.11.0-20180817134623_1534513779564_0.3028825026836157"},"_hasShrinkwrap":false},"0.11.0-20180817173946":{"name":"@atomist/automation-seed","version":"0.11.0-20180817173946","description":"Atomist automation client seed project","author":{"name":"Atomist"},"license":"Apache-2.0","repository":{"type":"git","url":"git+https://github.com/atomist/automation-seed-ts.git"},"homepage":"https://github.com/atomist/automation-seed-ts#readme","bugs":{"url":"https://github.com/atomist/automation-seed-ts/issues"},"keywords":["atomist","automation","seed"],"main":"./index.js","types":"./index.d.ts","dependencies":{"@atomist/automation-client":"^0.20.3","@types/app-root-path":"^1.2.4","app-root-path":"^2.0.1"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.5.7","@types/power-assert":"^1.5.0","espower-typescript":"^9.0.0","mocha":"^5.2.0","nodemon":"^1.18.3","npm-run-all":"^4.1.3","power-assert":"^1.6.0","rimraf":"^2.6.2","supervisor":"^0.12.0","ts-node":"^7.0.0","tslint":"^5.11.0","typedoc":"^0.11.1","typescript":"^2.9.2","typescript-formatter":"^7.2.2"},"directories":{"test":"test"},"scripts":{"autostart":"nodemon --watch index.ts,lib --ext ts --exec ts-node -- node_modules/@atomist/automation-client/start.client.js","autotest":"supervisor --watch index.ts,lib,test --extensions ts --no-restart-on exit --quiet --exec npm -- test","build":"run-s compile test lint doc","clean":"run-p clean:compile clean:doc clean:run","clean:compile":"rimraf git-info.json \"index.{d.ts,js{,.map}}\" \"{lib,test}/**/*.{d.ts,js{,.map}}\" lib/typings/types.ts","clean:dist":"run-s clean clean:npm","clean:doc":"rimraf doc","clean:npm":"rimraf node_modules","clean:run":"rimraf *-v8.log profile.txt log","compile":"run-s git:info gql:gen compile:ts","compile:ts":"tsc --project .","doc":"typedoc --mode modules --ignoreCompilerErrors --exclude \"**/*.d.ts\" --out doc index.ts lib","fmt":"tsfmt --replace","git:info":"node node_modules/@atomist/automation-client/start.git-info.js","gql:gen":"node node_modules/@atomist/automation-client/start.gql-gen.js","lint":"tslint --format verbose --project . --exclude \"{build,node_modules}/**\" --exclude \"**/*.d.ts\" \"**/*.ts\"","lint:fix":"npm run lint -- --fix","start":"node node_modules/@atomist/automation-client/start.client.js","test":"mocha --require espower-typescript/guess \"test/**/*.test.ts\"","test:one":"mocha --require espower-typescript/guess \"test/**/${TEST:-*.test.ts}\"","typedoc":"npm run doc"},"engines":{"node":">=8.0.0","npm":">=5.0.0"},"gitHead":"4bcfcfd8535e973695d50b37d701c21c332e9ec2","readme":"# @atomist/automation-seed\n\n[![npm version](https://badge.fury.io/js/%40atomist%2Fautomation-seed.svg)](https://badge.fury.io/js/%40atomist%2Fautomation-seed)\n\nThis repository contains examples demonstrating use of the\n[Atomist][atomist] API for software.  You will find examples\nillustrating:\n\n-   Creating bot commands using _command handlers_\n-   Responding to DevOps events, e.g., commits pushed to a repository,\n    using _event handlers_\n\nThese examples use the [`@atomist/automation-client`][client] node\nmodule to implement a local client that connects to the Atomist API\nfor software.  See the [Atomist documentation][atomist-doc] for more\ninformation about Atomist, software delivery machines (SDM), and the\nAtomist API for software.\n\n[client]: https://github.com/atomist/automation-client-ts (@atomist/automation-client Node Module)\n[atomist-doc]: https://docs.atomist.com/ (Atomist Documentation)\n\n## Prerequisites\n\nBefore you can run this project, you will need an Atomist workspace.\nSee the [Atomist Getting Started Guide][atomist-start] for\ninstructions on how to get an Atomist workspace and connect it to your\nsource code repositories, continuous integration, chat platform, etc.\n\nYou will also need several other prerequisites to successfully run\nthis project.  See the [Atomist Developer Guide][atomist-dev] for\ninstructions on setting up your development environment.  Briefly, you\nwill need [Git][git], [Node.js][node], and the [Atomist\nCLI][atomist-cli] installed and properly configured on your system.\n\n[atomist-start]: https://docs.atomist.com/user/ (Atomist - Getting Started)\n[atomist-dev]: https://docs.atomist.com/developer/prerequisites/ (Atomist - Developer Prerequisites)\n[git]: https://git-scm.com/ (Git)\n[node]: https://nodejs.org/ (Node.js)\n[atomist-cli]: https://github.com/atomist/cli (Atomist Command-Line Interface)\n\n## Running\n\nOnce the prerequisites are met on your system, use `npm` to install\ndependencies and build the project.\n\n```\n$ npm install\n$ npm run build\n```\n\nYou can start up your SDM in the usual `npm` way.\n\n```\n$ npm start\n```\n\nThe [Atomist API Client documentation][atomist-client] has more\ncomplete instructions for running an SDM or other Atomist API client.\n\n[atomist-client]: https://docs.atomist.com/developer/client/ (Atomist - API Client)\n\n## Using\n\n### Invoking a command handler from Slack\n\nThis project contains the code to create and respond to a simple\n`hello world` bot command.  The code that defines the bot command and\nimplements responding to the command, i.e., the _command handler_, can\nbe found in [`HelloWorld.ts`][hello].  Once you have your local\nautomation client running (the previous step in this guide), you can\ninvoke the command handler by sending the Atomist bot the command as a\nmessage.  Be sure the Atomist bot is in the channel before sending it\nthe message.\n\n```\n/invite @atomist\n@atomist hello world\n```\n\nOnce you've submitted the command in Slack, you'll see the incoming\nand outgoing messages show up in the logs of your locally running\nautomation-client.  Ultimately, you should see the response from the\nbot in Slack.\n\n[hello]: https://github.com/atomist/automation-seed-ts/blob/master/src/commands/HelloWorld.ts (HelloWorld Command Handler)\n\nFeel free to modify the code in the `HelloWorld` command handler,\nNode.js will automatically reload the client, and see what happens!\n\n### Triggering an event handler\n\nWhile command handlers respond to commands you send the Atomist bot,\n_event handlers_ take action when different types of events occur in\nyour development and operations environment.  Some examples of events\nare commits pushed to a repo, or a CI build that fails, or an instance\nof a running service that becomes unhealthy.  Example responses to those\nevents are showing the commits in a Slack message, automatically\nrestarting the build, and triggering a PagerDuty alert, respectively.\n\nThe sample event handler in this project, [NotifyOnPush][nop-handler],\nwill notice when someone pushes new commits to a repository in the\nGitHub organization and send a notice of that push to all Slack\nchannels associated with that repository.\n\nIf you have followed the instructions above and are running these\nautomations against the atomist-playground Slack team and GitHub\norganization, go ahead and edit the [notify-on-push][nop-repo]\nrepository by adding some text to its [README][nop-readme].  Once you\nhave saved your changes, you should see that event appear in the\nconsole logs of your locally running automation client, followed by a\nlog of the actions the event handler is taking.  Once those actions\nare complete, you should see a new message in the\n[`#notify-on-push`][nop-channel] channel in the atomist-playground\nSlack team.\n\n[nop-handler]: https://github.com/atomist/automation-seed-ts/blob/master/src/events/NotifyOnPush.ts (Atomist NotifyOnPush Event Handler)\n[nop-repo]: https://github.com/atomist-playground/notify-on-push (Atomist NotifyOnPush Repository)\n[nop-readme]: https://github.com/atomist-playground/notify-on-push/edit/master/README.md (Edit NotifyOnPush README)\n[nop-channel]: https://atomist-playground.slack.com/messages/C7GNF6743/ (NotifyOnPush Slack Channel)\n\n## Support\n\nGeneral support questions should be discussed in the `#support`\nchannel in the [Atomist community Slack workspace][slack].\n\nIf you find a problem, please create an [issue][].\n\n[issue]: https://github.com/atomist/automation-seed-ts/issues\n\n## Development\n\nYou will need to install [node][] to build and test this project.\n\n### Build and Test\n\nUse the following package scripts to build, test, and perform other\ndevelopment tasks.\n\nCommand | Reason\n------- | ------\n`npm install` | install project dependencies\n`npm run build` | compile, test, lint, and generate docs\n`npm start` | start the Atomist API client\n`npm run autostart` | run the client, refreshing when files change\n`npm run lint` | run TSLint against the TypeScript\n`npm run compile` | generate types from GraphQL and compile TypeScript\n`npm test` | run tests\n`npm run autotest` | run tests every time a file changes\n`npm run clean` | remove files generated during the build\n\n### Release\n\nReleases are managed by the [Atomist SDM][atomist-sdm].  Press the\nrelease button in the Atomist dashboard or Slack.\n\n[atomist-sdm]: https://github.com/atomist/atomist-sdm (Atomist Software Delivery Machine)\n\n---\n\nCreated by [Atomist][atomist].\nNeed Help?  [Join our Slack team][slack].\n\n[atomist]: https://atomist.com/ (Atomist - How Teams Deliver Software)\n[slack]: https://join.atomist.com/ (Atomist Community Slack)\n","readmeFilename":"README.md","_id":"@atomist/automation-seed@0.11.0-20180817173946","_npmVersion":"6.3.0","_nodeVersion":"9.11.2","_npmUser":{"name":"atomist","email":"npm@atomist.com"},"dist":{"integrity":"sha512-OC8d3hXO627BfAefpdF5kZy83QSOIIiPD71u5eJbAUB1MSgFyIOl/r2ICs5VZe8xE9bDMR179LsAtwa/RIg8ng==","shasum":"b3a1c835d813e0f369c90e2b406d023bf099b118","tarball":"https://registry.npmjs.org/@atomist/automation-seed/-/automation-seed-0.11.0-20180817173946.tgz","fileCount":25,"unpackedSize":174434,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbdwlvCRA9TVsSAnZWagAAkWcP/AokLPUQKjNLczf1/1G3\n9yIQDqPucfWtxIgbsGEfUe0x4BmtfynhrQcpamCgpdhql2DcdKhUpwXFZXsY\n1hYcA6eQOJGmpXNLyZR4gSWpOJFXvNDzLMWFyd6dv/z50Ho8o95qqeNyCAtT\nGLW3c+/BRoK+Cer1VSe2PQWXFwO3kPPGxCY0V+/xuitH0aTG0nVsp0vIhqjQ\nyCHwehIo3AGUc7Gzh+kTGOCGsmWvI7HIFs4LkcPJHowIQjRg6oLJlpBi0uBW\nACj8UUazkrXW6MGqy2HzTPmokc+YRp1dialG2yre5DLdUZkATl+qvxuINpcs\nIVVbakIa8M4cYE1T1NfQbzHLc5mWFXd1P6g07ofuHVfDEdXA5kTrl9CZElyV\nnEe8Y4EsVerlOax+A/PLDgRvMTm1Aahfo65lQdIzwjmssgIlsfMQ/X+xp5+v\n9r7nS2mSb5ZSRLgHSyKe80YlsMxKH1ZMbHvScjtHpUPd6U6h4oZZluJCLhsv\nRMLCFQLQ+/IwIUsC1QYwTN+Q/nhPcJ6HleuYVolYFYHrCnLMtLL4R5xXlEW1\n7s3cLDQoS6mnorrmcVzcM2RrNqLUIuwjHKtsVQGAyiM6mB0Igzk4PKspfXbd\nQn05DiI5j51OUHN/4ewdMMWNcOBdDwk4srAjbIfjdTSsXNrIhcreEVtNN6xe\n4cmf\r\n=HLGC\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBgYNSujx0cwaSpe5Y/GqS3iYlBnI4b1Fq29w/WlxrudAiBmdnzO5DX0QoQkS3JXMxcpzaKtptpV+iKgGRtRXZLzYA=="}]},"maintainers":[{"name":"atomist","email":"npm@atomist.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/automation-seed_0.11.0-20180817173946_1534527855104_0.6409146797278273"},"_hasShrinkwrap":false},"0.11.0":{"name":"@atomist/automation-seed","version":"0.11.0","description":"Atomist automation client seed project","author":{"name":"Atomist"},"license":"Apache-2.0","repository":{"type":"git","url":"git+https://github.com/atomist/automation-seed-ts.git"},"homepage":"https://github.com/atomist/automation-seed-ts#readme","bugs":{"url":"https://github.com/atomist/automation-seed-ts/issues"},"keywords":["atomist","automation","seed"],"main":"./index.js","types":"./index.d.ts","dependencies":{"@atomist/automation-client":"^0.20.3","@types/app-root-path":"^1.2.4","app-root-path":"^2.0.1"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.5.7","@types/power-assert":"^1.5.0","espower-typescript":"^9.0.0","mocha":"^5.2.0","nodemon":"^1.18.3","npm-run-all":"^4.1.3","power-assert":"^1.6.0","rimraf":"^2.6.2","supervisor":"^0.12.0","ts-node":"^7.0.0","tslint":"^5.11.0","typedoc":"^0.11.1","typescript":"^2.9.2","typescript-formatter":"^7.2.2"},"directories":{"test":"test"},"scripts":{"autostart":"nodemon --watch index.ts,lib --ext ts --exec ts-node -- node_modules/@atomist/automation-client/start.client.js","autotest":"supervisor --watch index.ts,lib,test --extensions ts --no-restart-on exit --quiet --exec npm -- test","build":"run-s compile test lint doc","clean":"run-p clean:compile clean:doc clean:run","clean:compile":"rimraf git-info.json \"index.{d.ts,js{,.map}}\" \"{lib,test}/**/*.{d.ts,js{,.map}}\" lib/typings/types.ts","clean:dist":"run-s clean clean:npm","clean:doc":"rimraf doc","clean:npm":"rimraf node_modules","clean:run":"rimraf *-v8.log profile.txt log","compile":"run-s git:info gql:gen compile:ts","compile:ts":"tsc --project .","doc":"typedoc --mode modules --ignoreCompilerErrors --exclude \"**/*.d.ts\" --out doc index.ts lib","fmt":"tsfmt --replace","git:info":"node node_modules/@atomist/automation-client/start.git-info.js","gql:gen":"node node_modules/@atomist/automation-client/start.gql-gen.js","lint":"tslint --format verbose --project . --exclude \"{build,node_modules}/**\" --exclude \"**/*.d.ts\" \"**/*.ts\"","lint:fix":"npm run lint -- --fix","start":"node node_modules/@atomist/automation-client/start.client.js","test":"mocha --require espower-typescript/guess \"test/**/*.test.ts\"","test:one":"mocha --require espower-typescript/guess \"test/**/${TEST:-*.test.ts}\"","typedoc":"npm run doc"},"engines":{"node":">=8.0.0","npm":">=5.0.0"},"gitHead":"4bcfcfd8535e973695d50b37d701c21c332e9ec2","_id":"@atomist/automation-seed@0.11.0","_npmVersion":"6.3.0","_nodeVersion":"9.11.2","_npmUser":{"name":"atomist","email":"npm@atomist.com"},"dist":{"integrity":"sha512-to4d6H526ELdVxtyddx+yvEJWHpCZvTE1aKLn36JeOOfbkIbg2iOOmk+KoiEntmz5I3H45PI95ATH/nMj+I4UQ==","shasum":"231857864060a4efbcdd788e740664056553b6bc","tarball":"https://registry.npmjs.org/@atomist/automation-seed/-/automation-seed-0.11.0.tgz","fileCount":25,"unpackedSize":174419,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbdw5mCRA9TVsSAnZWagAAanIP/0cz7gJIqDKoQK2kbRDO\nPoi/Iz5c2l/bTEk/GKn3OF2zQO309OdTr2Jks0dsqaWdeqv2BZalylrxGAv5\n93/ypIIvuWa6/5XrrQfu+qF1xAT9y6eofp2o3R5uTjBsRTsvnDAmGaYCeI7c\nGM1f+THevpxENnBqidptphNTIjezg3i58hOBwF5Lmjjb8eytmuBTwKkKlZFN\nc9LJUlifJZ/stsLYgV7m7CClVMPseNw1J9TiCiUn8yRcer5Q4B2fvviS4Qo/\nOMgEJCjnmFWxXUuXagDuEDSoMKUrW4h/UAnL17SkqZMyrDKSjIGfrhIVWTjN\nKIyxpPgrnVKF2Crn4HoQzMguuus9LrlzvTu2dOT7KLX8TmdoxiRbyzWoPZ+N\neq9LmRuU8+Z9XLwtr4kGEQ+ZqmRTcKg+vOLFegLOVywRmtg6McDcKvQG9NLs\nRgmR/XSgbPANFLyBU1eQ7D7NgxZ5qtya3G8tr/p5k3MhlDkB/+2Y4lg6FGLw\nvUBERvgGv3GPt8a4eJjP5HkDJZKWSMyEfir5WyLykBGWWgZrOt2ciQ3Kqy+k\nopzocIPCXZkLYqfBF7RVs6uM3d4gFVAwgMR/GFH+a8ZHss9Mq1Y8gxWoGQ3O\nLhsJYjsj/EAulW/YEzJ4rvGCRZKJDUTksSw4F7NDYAEtiOQQMYVnMAUtbcB0\nD9jQ\r\n=aR2f\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCokN7mBM25lzqAcSuWZWG/gEdJqDz06Ren0tGZpLQ08wIhALE8Ro6eVSjRvvrc5hzQvSqRFGD0piZ/a6VirgwGqHnZ"}]},"maintainers":[{"name":"atomist","email":"npm@atomist.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/automation-seed_0.11.0_1534529125933_0.6484810451227083"},"_hasShrinkwrap":false},"0.11.1-20180817180629":{"name":"@atomist/automation-seed","version":"0.11.1-20180817180629","description":"Atomist automation client seed project","author":{"name":"Atomist"},"license":"Apache-2.0","repository":{"type":"git","url":"git+https://github.com/atomist/automation-seed-ts.git"},"homepage":"https://github.com/atomist/automation-seed-ts#readme","bugs":{"url":"https://github.com/atomist/automation-seed-ts/issues"},"keywords":["atomist","automation","seed"],"main":"./index.js","types":"./index.d.ts","dependencies":{"@atomist/automation-client":"^0.20.3","@types/app-root-path":"^1.2.4","app-root-path":"^2.0.1"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.5.7","@types/power-assert":"^1.5.0","espower-typescript":"^9.0.0","mocha":"^5.2.0","nodemon":"^1.18.3","npm-run-all":"^4.1.3","power-assert":"^1.6.0","rimraf":"^2.6.2","supervisor":"^0.12.0","ts-node":"^7.0.0","tslint":"^5.11.0","typedoc":"^0.11.1","typescript":"^2.9.2","typescript-formatter":"^7.2.2"},"directories":{"test":"test"},"scripts":{"autostart":"nodemon --watch index.ts,lib --ext ts --exec ts-node -- node_modules/@atomist/automation-client/start.client.js","autotest":"supervisor --watch index.ts,lib,test --extensions ts --no-restart-on exit --quiet --exec npm -- test","build":"run-s compile test lint doc","clean":"run-p clean:compile clean:doc clean:run","clean:compile":"rimraf git-info.json \"index.{d.ts,js{,.map}}\" \"{lib,test}/**/*.{d.ts,js{,.map}}\" lib/typings/types.ts","clean:dist":"run-s clean clean:npm","clean:doc":"rimraf doc","clean:npm":"rimraf node_modules","clean:run":"rimraf *-v8.log profile.txt log","compile":"run-s git:info gql:gen compile:ts","compile:ts":"tsc --project .","doc":"typedoc --mode modules --ignoreCompilerErrors --exclude \"**/*.d.ts\" --out doc index.ts lib","fmt":"tsfmt --replace","git:info":"node node_modules/@atomist/automation-client/start.git-info.js","gql:gen":"node node_modules/@atomist/automation-client/start.gql-gen.js","lint":"tslint --format verbose --project . --exclude \"{build,node_modules}/**\" --exclude \"**/*.d.ts\" \"**/*.ts\"","lint:fix":"npm run lint -- --fix","start":"node node_modules/@atomist/automation-client/start.client.js","test":"mocha --require espower-typescript/guess \"test/**/*.test.ts\"","test:one":"mocha --require espower-typescript/guess \"test/**/${TEST:-*.test.ts}\"","typedoc":"npm run doc"},"engines":{"node":">=8.0.0","npm":">=5.0.0"},"gitHead":"127ae9c08ef793eef804f5dacee14321642a3c55","readme":"# @atomist/automation-seed\n\n[![npm version](https://badge.fury.io/js/%40atomist%2Fautomation-seed.svg)](https://badge.fury.io/js/%40atomist%2Fautomation-seed)\n\nThis repository contains examples demonstrating use of the\n[Atomist][atomist] API for software.  You will find examples\nillustrating:\n\n-   Creating bot commands using _command handlers_\n-   Responding to DevOps events, e.g., commits pushed to a repository,\n    using _event handlers_\n\nThese examples use the [`@atomist/automation-client`][client] node\nmodule to implement a local client that connects to the Atomist API\nfor software.  See the [Atomist documentation][atomist-doc] for more\ninformation about Atomist, software delivery machines (SDM), and the\nAtomist API for software.\n\n[client]: https://github.com/atomist/automation-client-ts (@atomist/automation-client Node Module)\n[atomist-doc]: https://docs.atomist.com/ (Atomist Documentation)\n\n## Prerequisites\n\nBefore you can run this project, you will need an Atomist workspace.\nSee the [Atomist Getting Started Guide][atomist-start] for\ninstructions on how to get an Atomist workspace and connect it to your\nsource code repositories, continuous integration, chat platform, etc.\n\nYou will also need several other prerequisites to successfully run\nthis project.  See the [Atomist Developer Guide][atomist-dev] for\ninstructions on setting up your development environment.  Briefly, you\nwill need [Git][git], [Node.js][node], and the [Atomist\nCLI][atomist-cli] installed and properly configured on your system.\n\n[atomist-start]: https://docs.atomist.com/user/ (Atomist - Getting Started)\n[atomist-dev]: https://docs.atomist.com/developer/prerequisites/ (Atomist - Developer Prerequisites)\n[git]: https://git-scm.com/ (Git)\n[node]: https://nodejs.org/ (Node.js)\n[atomist-cli]: https://github.com/atomist/cli (Atomist Command-Line Interface)\n\n## Running\n\nOnce the prerequisites are met on your system, use `npm` to install\ndependencies and build the project.\n\n```\n$ npm install\n$ npm run build\n```\n\nYou can start up your SDM in the usual `npm` way.\n\n```\n$ npm start\n```\n\nThe [Atomist API Client documentation][atomist-client] has more\ncomplete instructions for running an SDM or other Atomist API client.\n\n[atomist-client]: https://docs.atomist.com/developer/client/ (Atomist - API Client)\n\n## Using\n\n### Invoking a command handler from Slack\n\nThis project contains the code to create and respond to a simple\n`hello world` bot command.  The code that defines the bot command and\nimplements responding to the command, i.e., the _command handler_, can\nbe found in [`HelloWorld.ts`][hello].  Once you have your local\nautomation client running (the previous step in this guide), you can\ninvoke the command handler by sending the Atomist bot the command as a\nmessage.  Be sure the Atomist bot is in the channel before sending it\nthe message.\n\n```\n/invite @atomist\n@atomist hello world\n```\n\nOnce you've submitted the command in Slack, you'll see the incoming\nand outgoing messages show up in the logs of your locally running\nautomation-client.  Ultimately, you should see the response from the\nbot in Slack.\n\n[hello]: https://github.com/atomist/automation-seed-ts/blob/master/src/commands/HelloWorld.ts (HelloWorld Command Handler)\n\nFeel free to modify the code in the `HelloWorld` command handler,\nNode.js will automatically reload the client, and see what happens!\n\n### Triggering an event handler\n\nWhile command handlers respond to commands you send the Atomist bot,\n_event handlers_ take action when different types of events occur in\nyour development and operations environment.  Some examples of events\nare commits pushed to a repo, or a CI build that fails, or an instance\nof a running service that becomes unhealthy.  Example responses to those\nevents are showing the commits in a Slack message, automatically\nrestarting the build, and triggering a PagerDuty alert, respectively.\n\nThe sample event handler in this project, [NotifyOnPush][nop-handler],\nwill notice when someone pushes new commits to a repository in the\nGitHub organization and send a notice of that push to all Slack\nchannels associated with that repository.\n\nIf you have followed the instructions above and are running these\nautomations against the atomist-playground Slack team and GitHub\norganization, go ahead and edit the [notify-on-push][nop-repo]\nrepository by adding some text to its [README][nop-readme].  Once you\nhave saved your changes, you should see that event appear in the\nconsole logs of your locally running automation client, followed by a\nlog of the actions the event handler is taking.  Once those actions\nare complete, you should see a new message in the\n[`#notify-on-push`][nop-channel] channel in the atomist-playground\nSlack team.\n\n[nop-handler]: https://github.com/atomist/automation-seed-ts/blob/master/src/events/NotifyOnPush.ts (Atomist NotifyOnPush Event Handler)\n[nop-repo]: https://github.com/atomist-playground/notify-on-push (Atomist NotifyOnPush Repository)\n[nop-readme]: https://github.com/atomist-playground/notify-on-push/edit/master/README.md (Edit NotifyOnPush README)\n[nop-channel]: https://atomist-playground.slack.com/messages/C7GNF6743/ (NotifyOnPush Slack Channel)\n\n## Support\n\nGeneral support questions should be discussed in the `#support`\nchannel in the [Atomist community Slack workspace][slack].\n\nIf you find a problem, please create an [issue][].\n\n[issue]: https://github.com/atomist/automation-seed-ts/issues\n\n## Development\n\nYou will need to install [node][] to build and test this project.\n\n### Build and Test\n\nUse the following package scripts to build, test, and perform other\ndevelopment tasks.\n\nCommand | Reason\n------- | ------\n`npm install` | install project dependencies\n`npm run build` | compile, test, lint, and generate docs\n`npm start` | start the Atomist API client\n`npm run autostart` | run the client, refreshing when files change\n`npm run lint` | run TSLint against the TypeScript\n`npm run compile` | generate types from GraphQL and compile TypeScript\n`npm test` | run tests\n`npm run autotest` | run tests every time a file changes\n`npm run clean` | remove files generated during the build\n\n### Release\n\nReleases are managed by the [Atomist SDM][atomist-sdm].  Press the\nrelease button in the Atomist dashboard or Slack.\n\n[atomist-sdm]: https://github.com/atomist/atomist-sdm (Atomist Software Delivery Machine)\n\n---\n\nCreated by [Atomist][atomist].\nNeed Help?  [Join our Slack team][slack].\n\n[atomist]: https://atomist.com/ (Atomist - How Teams Deliver Software)\n[slack]: https://join.atomist.com/ (Atomist Community Slack)\n","readmeFilename":"README.md","_id":"@atomist/automation-seed@0.11.1-20180817180629","_npmVersion":"6.3.0","_nodeVersion":"9.11.2","_npmUser":{"name":"atomist","email":"npm@atomist.com"},"dist":{"integrity":"sha512-vibElq3TI3MscsZv+JrzMnPVw+gPxQxPpyBMQ9hIbu5jWqNPQeaFLCnWIvUkCnAGUUYLO+GJmxNikDeSqYJV5A==","shasum":"a4274febcebee58fd5b1e0ce0dec00fc2fd4e95c","tarball":"https://registry.npmjs.org/@atomist/automation-seed/-/automation-seed-0.11.1-20180817180629.tgz","fileCount":25,"unpackedSize":174531,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbdw9oCRA9TVsSAnZWagAAugsP/0QApuyBlGPrMzCo6/QR\nGPe2iU8+rGQ9g3Ywxs/dhzNl53CG8CcyL52eBfjiEFISXTdlYacf0dsYvui6\nBuobyLcUTULEIFNEp8kWGGuPGsr60EVubAXGkHcg5d8XeTRyTFlfv5aqk5BI\nIVaidCvCeBv2nAIvrIKsERK4PSnRCWe3bqwwFRrPH68LeB4lo0TmGWWHqEjf\n50ea0aQv+l6vCMCiKW2A+u4rQKnPEz+jenBUFkOmX0YinTCOYgYFTRlcDRjg\nbhBMdIgne/5HUjG8NZsAhJPwBRDkZFNqj5pM4NyGWGxYRWUTEzGnf4G5aORD\nx6wUG2mFG9mlAMmNfOZHeaZ74namK1zU4J2IBQ6bUaUC5TMtkuyUylkH9MaY\nvrRO4/SzVRAcZw/bknjvc/Etj6dg1kTtknFkx7DLNUeI9VXSLajIiz9tJ8jw\nMa+eLhZXl9cvd0SXWymmTiSo786XkL9ctGwNXV4lu2yqZNAD95arCwEJmjb/\nIjq74xlDY7btRwfqaEM3m/TGpxHKigsgmFpO65m60PsU0LgmGj23Q3GtYwH6\n+STajSJsOEDhO9bxZXQtKUh3vr+4gEgn6GslJligG+Jt32lBbPSZnaLv5Opo\nZ3oG0ExJx0il2GfgSca1E2PiaxY7g4EizRfxUGl8zrGizx/fbdUW+YVEwids\n4DwX\r\n=ax/j\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBCTjPpUNDg1DcDtzfYjRphrNTQ6mhNk3Jl4kjsZCm9xAiBJ6Juq3YohV6+cnpQcdfs58EySBTOowggvjs6SZb0D/A=="}]},"maintainers":[{"name":"atomist","email":"npm@atomist.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/automation-seed_0.11.1-20180817180629_1534529383606_0.8879279201232972"},"_hasShrinkwrap":false},"0.12.0-20180819020446":{"name":"@atomist/automation-seed","version":"0.12.0-20180819020446","description":"Atomist automation client seed project","author":{"name":"Atomist"},"license":"Apache-2.0","repository":{"type":"git","url":"git+https://github.com/atomist/automation-seed-ts.git"},"homepage":"https://github.com/atomist/automation-seed-ts#readme","bugs":{"url":"https://github.com/atomist/automation-seed-ts/issues"},"keywords":["atomist","automation","seed"],"main":"./index.js","types":"./index.d.ts","dependencies":{"@atomist/automation-client":"^0.21.1","@types/app-root-path":"^1.2.4","app-root-path":"^2.0.1"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.5.7","@types/power-assert":"^1.5.0","espower-typescript":"^9.0.0","mocha":"^5.2.0","nodemon":"^1.18.3","npm-run-all":"^4.1.3","power-assert":"^1.6.0","rimraf":"^2.6.2","supervisor":"^0.12.0","ts-node":"^7.0.0","tslint":"^5.11.0","typedoc":"^0.11.1","typescript":"^2.9.2","typescript-formatter":"^7.2.2"},"directories":{"test":"test"},"scripts":{"autostart":"nodemon --watch index.ts --watch lib --ext ts --delay 4 --exec ts-node -- node_modules/@atomist/automation-client/bin/start.js","autotest":"supervisor --watch index.ts,lib,test --extensions ts --no-restart-on exit --quiet --exec npm -- test","build":"run-s compile test lint doc","clean":"run-p clean:compile clean:doc clean:run","clean:compile":"rimraf git-info.json \"index.{d.ts,js{,.map}}\" \"{lib,test}/**/*.{d.ts,js{,.map}}\" lib/typings/types.ts","clean:dist":"run-s clean clean:npm","clean:doc":"rimraf doc","clean:npm":"rimraf node_modules","clean:run":"rimraf *-v8.log profile.txt log","compile":"run-s git:info gql:gen compile:ts","compile:ts":"tsc --project .","doc":"typedoc --mode modules --ignoreCompilerErrors --exclude \"**/*.d.ts\" --out doc index.ts lib","fmt":"tsfmt --replace","git:info":"atm-git-info","gql:gen":"atm-gql-gen","lint":"tslint --format verbose --project . --exclude \"node_modules/**\" --exclude \"**/*.d.ts\" \"**/*.ts\"","lint:fix":"npm run lint -- --fix","start":"atm-start","test":"mocha --require espower-typescript/guess \"test/**/*.test.ts\"","test:one":"mocha --require espower-typescript/guess \"test/**/${TEST:-*.test.ts}\"","typedoc":"npm run doc"},"engines":{"node":">=8.0.0","npm":">=5.0.0"},"gitHead":"3b01988fab73a653a59e1420d9b1a907a1653377","readme":"# @atomist/automation-seed\n\n[![npm version](https://badge.fury.io/js/%40atomist%2Fautomation-seed.svg)](https://badge.fury.io/js/%40atomist%2Fautomation-seed)\n\nThis repository contains examples demonstrating use of the\n[Atomist][atomist] API for software.  You will find examples\nillustrating:\n\n-   Creating bot commands using _command handlers_\n-   Responding to DevOps events, e.g., commits pushed to a repository,\n    using _event handlers_\n\nThese examples use the [`@atomist/automation-client`][client] node\nmodule to implement a local client that connects to the Atomist API\nfor software.  See the [Atomist documentation][atomist-doc] for more\ninformation about Atomist, software delivery machines (SDM), and the\nAtomist API for software.\n\n[client]: https://github.com/atomist/automation-client-ts (@atomist/automation-client Node Module)\n[atomist-doc]: https://docs.atomist.com/ (Atomist Documentation)\n\n## Prerequisites\n\nBefore you can run this project, you will need an Atomist workspace.\nSee the [Atomist Getting Started Guide][atomist-start] for\ninstructions on how to get an Atomist workspace and connect it to your\nsource code repositories, continuous integration, chat platform, etc.\n\nYou will also need several other prerequisites to successfully run\nthis project.  See the [Atomist Developer Guide][atomist-dev] for\ninstructions on setting up your development environment.  Briefly, you\nwill need [Git][git], [Node.js][node], and the [Atomist\nCLI][atomist-cli] installed and properly configured on your system.\n\n[atomist-start]: https://docs.atomist.com/user/ (Atomist - Getting Started)\n[atomist-dev]: https://docs.atomist.com/developer/prerequisites/ (Atomist - Developer Prerequisites)\n[git]: https://git-scm.com/ (Git)\n[node]: https://nodejs.org/ (Node.js)\n[atomist-cli]: https://github.com/atomist/cli (Atomist Command-Line Interface)\n\n## Running\n\nOnce the prerequisites are met on your system, use `npm` to install\ndependencies and build the project.\n\n```\n$ npm install\n$ npm run build\n```\n\nYou can start up your SDM in the usual `npm` way.\n\n```\n$ npm start\n```\n\nThe [Atomist API Client documentation][atomist-client] has more\ncomplete instructions for running an SDM or other Atomist API client.\n\n[atomist-client]: https://docs.atomist.com/developer/client/ (Atomist - API Client)\n\n## Using\n\n### Invoking a command handler from Slack\n\nThis project contains the code to create and respond to a simple\n`hello world` bot command.  The code that defines the bot command and\nimplements responding to the command, i.e., the _command handler_, can\nbe found in [`HelloWorld.ts`][hello].  Once you have your local\nautomation client running (the previous step in this guide), you can\ninvoke the command handler by sending the Atomist bot the command as a\nmessage.  Be sure the Atomist bot is in the channel before sending it\nthe message.\n\n```\n/invite @atomist\n@atomist hello world\n```\n\nOnce you've submitted the command in Slack, you'll see the incoming\nand outgoing messages show up in the logs of your locally running\nautomation-client.  Ultimately, you should see the response from the\nbot in Slack.\n\n[hello]: https://github.com/atomist/automation-seed-ts/blob/master/src/commands/HelloWorld.ts (HelloWorld Command Handler)\n\nFeel free to modify the code in the `HelloWorld` command handler,\nNode.js will automatically reload the client, and see what happens!\n\n### Triggering an event handler\n\nWhile command handlers respond to commands you send the Atomist bot,\n_event handlers_ take action when different types of events occur in\nyour development and operations environment.  Some examples of events\nare commits pushed to a repo, or a CI build that fails, or an instance\nof a running service that becomes unhealthy.  Example responses to those\nevents are showing the commits in a Slack message, automatically\nrestarting the build, and triggering a PagerDuty alert, respectively.\n\nThe sample event handler in this project, [NotifyOnPush][nop-handler],\nwill notice when someone pushes new commits to a repository in the\nGitHub organization and send a notice of that push to all Slack\nchannels associated with that repository.\n\nIf you have followed the instructions above and are running these\nautomations against the atomist-playground Slack team and GitHub\norganization, go ahead and edit the [notify-on-push][nop-repo]\nrepository by adding some text to its [README][nop-readme].  Once you\nhave saved your changes, you should see that event appear in the\nconsole logs of your locally running automation client, followed by a\nlog of the actions the event handler is taking.  Once those actions\nare complete, you should see a new message in the\n[`#notify-on-push`][nop-channel] channel in the atomist-playground\nSlack team.\n\n[nop-handler]: https://github.com/atomist/automation-seed-ts/blob/master/src/events/NotifyOnPush.ts (Atomist NotifyOnPush Event Handler)\n[nop-repo]: https://github.com/atomist-playground/notify-on-push (Atomist NotifyOnPush Repository)\n[nop-readme]: https://github.com/atomist-playground/notify-on-push/edit/master/README.md (Edit NotifyOnPush README)\n[nop-channel]: https://atomist-playground.slack.com/messages/C7GNF6743/ (NotifyOnPush Slack Channel)\n\n## Support\n\nGeneral support questions should be discussed in the `#support`\nchannel in the [Atomist community Slack workspace][slack].\n\nIf you find a problem, please create an [issue][].\n\n[issue]: https://github.com/atomist/automation-seed-ts/issues\n\n## Development\n\nYou will need to install [node][] to build and test this project.\n\n### Build and Test\n\nUse the following package scripts to build, test, and perform other\ndevelopment tasks.\n\nCommand | Reason\n------- | ------\n`npm install` | install project dependencies\n`npm run build` | compile, test, lint, and generate docs\n`npm start` | start the Atomist API client\n`npm run autostart` | run the client, refreshing when files change\n`npm run lint` | run TSLint against the TypeScript\n`npm run compile` | generate types from GraphQL and compile TypeScript\n`npm test` | run tests\n`npm run autotest` | run tests every time a file changes\n`npm run clean` | remove files generated during the build\n\n### Release\n\nReleases are managed by the [Atomist SDM][atomist-sdm].  Press the\nrelease button in the Atomist dashboard or Slack.\n\n[atomist-sdm]: https://github.com/atomist/atomist-sdm (Atomist Software Delivery Machine)\n\n---\n\nCreated by [Atomist][atomist].\nNeed Help?  [Join our Slack team][slack].\n\n[atomist]: https://atomist.com/ (Atomist - How Teams Deliver Software)\n[slack]: https://join.atomist.com/ (Atomist Community Slack)\n","readmeFilename":"README.md","_id":"@atomist/automation-seed@0.12.0-20180819020446","_npmVersion":"6.4.0","_nodeVersion":"9.11.2","_npmUser":{"name":"atomist","email":"npm@atomist.com"},"dist":{"integrity":"sha512-dlUHBet+lJ2t60dvVesz++eW9OL7/RpG6hxhzVnYj35TNB67K5cIuM6dGBm1OXjPEWiP1W1OkQSRYEJB0Ok4jQ==","shasum":"79f291093a9fe567ea3ad511b24ad40d3a9eade8","tarball":"https://registry.npmjs.org/@atomist/automation-seed/-/automation-seed-0.12.0-20180819020446.tgz","fileCount":25,"unpackedSize":174569,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbeNDbCRA9TVsSAnZWagAAqSgP+wS6FHzkjgHoTMYn8HTv\nSFR2s6hq+HGpBWXFSKwwstyeJ6ygiM+lywfyQUYbBm0wmegj1ODE4Nxlu8jk\n/BeVnVJKHWrLI11xFuw9aQJAntvUGOnN5TVMZY0SadSgGM1dQGfs5qIybFmE\n+kOMK9P/WNZjbZDBIr4uMOiIsUoPhVG36MA5DGTwrEcGZhDFK3SrmJrux+d0\nz3svn4AQsEa4Z0qFBr8u664gauwa6xlgSJbSolORJbl4rzbAZFZT/JMEFlTA\nLGV3mXpueJMPuhAR3ZdWk6yrSYR9RPy+ubLA1W4mdlglXAMlKmYBDcPxd3L5\n1QMeOtLnj8vAq4nHSCPPtTI+r+AkSnB0vb4bB1alF6Az2U3ohgtPSOJjZ+CV\nuskXx0yS+68Ebc8tkxfhChWrQxZ8kSp31wMw8sKDFB0ZNRO7RYko5+GGHNVH\n8TQaT83FaRrxy2e6iHmX+rCns1B55PAVClStPTATBdZWn3y26zkOS8VWxZDT\nvBB5Ul5oEBFhfnowxqZEKdRGUDk7se9laeJ6skj2kzsqms6X/K8Vlt9xq7vt\nZBF3RAdCDAG1+qcMcQavD6RMET3/nxwo1MvxzAkEBWtCCveHh0KTDG+SLfKd\nW0AyUD/n0K9r8OIhG1EzDNSVywqzd0wpM5GQQOgqaX73hG5KMYbMJADT6Jlq\ncKnp\r\n=9Ct8\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFEs4Bxy5oVD3aKcltD8FKqOha5XTr2PIEmaeqqswGYdAiEAyAMtUzBHNfaD4FsQ6fqIaQhPEg5eoKszUCxO7HuDzWg="}]},"maintainers":[{"name":"atomist","email":"npm@atomist.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/automation-seed_0.12.0-20180819020446_1534644442473_0.69942503169354"},"_hasShrinkwrap":false},"0.12.0":{"name":"@atomist/automation-seed","version":"0.12.0","description":"Atomist automation client seed project","author":{"name":"Atomist"},"license":"Apache-2.0","repository":{"type":"git","url":"git+https://github.com/atomist/automation-seed-ts.git"},"homepage":"https://github.com/atomist/automation-seed-ts#readme","bugs":{"url":"https://github.com/atomist/automation-seed-ts/issues"},"keywords":["atomist","automation","seed"],"main":"./index.js","types":"./index.d.ts","dependencies":{"@atomist/automation-client":"^0.21.1","@types/app-root-path":"^1.2.4","app-root-path":"^2.0.1"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.5.7","@types/power-assert":"^1.5.0","espower-typescript":"^9.0.0","mocha":"^5.2.0","nodemon":"^1.18.3","npm-run-all":"^4.1.3","power-assert":"^1.6.0","rimraf":"^2.6.2","supervisor":"^0.12.0","ts-node":"^7.0.0","tslint":"^5.11.0","typedoc":"^0.11.1","typescript":"^2.9.2","typescript-formatter":"^7.2.2"},"directories":{"test":"test"},"scripts":{"autostart":"nodemon --watch index.ts --watch lib --ext ts --delay 4 --exec ts-node -- node_modules/@atomist/automation-client/bin/start.js","autotest":"supervisor --watch index.ts,lib,test --extensions ts --no-restart-on exit --quiet --exec npm -- test","build":"run-s compile test lint doc","clean":"run-p clean:compile clean:doc clean:run","clean:compile":"rimraf git-info.json \"index.{d.ts,js{,.map}}\" \"{lib,test}/**/*.{d.ts,js{,.map}}\" lib/typings/types.ts","clean:dist":"run-s clean clean:npm","clean:doc":"rimraf doc","clean:npm":"rimraf node_modules","clean:run":"rimraf *-v8.log profile.txt log","compile":"run-s git:info gql:gen compile:ts","compile:ts":"tsc --project .","doc":"typedoc --mode modules --ignoreCompilerErrors --exclude \"**/*.d.ts\" --out doc index.ts lib","fmt":"tsfmt --replace","git:info":"atm-git-info","gql:gen":"atm-gql-gen","lint":"tslint --format verbose --project . --exclude \"node_modules/**\" --exclude \"**/*.d.ts\" \"**/*.ts\"","lint:fix":"npm run lint -- --fix","start":"atm-start","test":"mocha --require espower-typescript/guess \"test/**/*.test.ts\"","test:one":"mocha --require espower-typescript/guess \"test/**/${TEST:-*.test.ts}\"","typedoc":"npm run doc"},"engines":{"node":">=8.0.0","npm":">=5.0.0"},"gitHead":"3b01988fab73a653a59e1420d9b1a907a1653377","_id":"@atomist/automation-seed@0.12.0","_npmVersion":"6.4.0","_nodeVersion":"9.11.2","_npmUser":{"name":"atomist","email":"npm@atomist.com"},"dist":{"integrity":"sha512-7OeWo2X3c+UiIVgQRio527oU4d4uXVyi3PzTsMflA1Dh8a0jVBpE/MNbtQGuzPS0fM4813S75Q448WDxvbJtLg==","shasum":"bc4a49da496e50da98e30d95518a3aa3758120ac","tarball":"https://registry.npmjs.org/@atomist/automation-seed/-/automation-seed-0.12.0.tgz","fileCount":25,"unpackedSize":174554,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbeNErCRA9TVsSAnZWagAAi/oP/2wanE6kXGDs/2lHYqDn\nLOhtnGGih1ENQCcyTGnIosWpxxEcT7e6l17HHWaMIXoX+gGV/PLVlokpZfPX\nC64m0miQGm31YOpftCRovQO9lFbNjvkN7BNFEncF3u42VJoHxS07FKwlPJHw\nJ5hBZ0l5VwLt9zD5AGzNHU7iPtpojHxCDikJk4UxXoSFt2VAenBwD7GdSi0n\nmCyTppvB+U/w8Ceu7er1c9PtjvTCscVMG2FqU/TMYzly9ha3xeILPpdl/A0Z\n5eq5LE2KIz8tMQ4Q+ttjvR9m8N4lzB1BRxcAtl0vUko0BysenmyJSffal8+a\nU+BBrgQouyopwSzIxqajaJ25uj+bPeBeNDpgNQyLF6K5cCY5LrRaBcRqJKaY\nN4XuAQaIU0M1U8jfZiarO5GcOwxZQH9ZQCYIy0+tHA3zqjrAAOJoInqw+UP0\nGSMyj+/GXm7teh1Vr4Ex1J7JGpeMIb1EfoBYwZ8RodTTMEjfuQq5AmGSD0pc\nXmyaig1w+8jYwQAW9v8npFKKm4bohqjqeizy3UwnmfLXoO/5tMO+vS++LN7Z\nhaTedmZuyaeMW5zprpJRthK5jxTUE7mO1FxVG3cklLtLezAMMEDq7FCYtG3w\n4aq58Ruw+uUBIg7id1/2bjI2+9+EBCcQPLMJXwO7l/44bXxAJhLSk4A5Mzzj\nGzXC\r\n=Smg9\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHtU6kzSwwn8e7nE+tNd11lo4bGusG9pCNGkAbxWWsQxAiEA+DR4bLN+UjvqBV9aEI6tNkQVn8FLycT2p2mIsc6+SPA="}]},"maintainers":[{"name":"atomist","email":"npm@atomist.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/automation-seed_0.12.0_1534644522807_0.8839878871226372"},"_hasShrinkwrap":false},"0.12.1-20180819020933":{"name":"@atomist/automation-seed","version":"0.12.1-20180819020933","description":"Atomist automation client seed project","author":{"name":"Atomist"},"license":"Apache-2.0","repository":{"type":"git","url":"git+https://github.com/atomist/automation-seed-ts.git"},"homepage":"https://github.com/atomist/automation-seed-ts#readme","bugs":{"url":"https://github.com/atomist/automation-seed-ts/issues"},"keywords":["atomist","automation","seed"],"main":"./index.js","types":"./index.d.ts","dependencies":{"@atomist/automation-client":"^0.21.1","@types/app-root-path":"^1.2.4","app-root-path":"^2.0.1"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.5.7","@types/power-assert":"^1.5.0","espower-typescript":"^9.0.0","mocha":"^5.2.0","nodemon":"^1.18.3","npm-run-all":"^4.1.3","power-assert":"^1.6.0","rimraf":"^2.6.2","supervisor":"^0.12.0","ts-node":"^7.0.0","tslint":"^5.11.0","typedoc":"^0.11.1","typescript":"^2.9.2","typescript-formatter":"^7.2.2"},"directories":{"test":"test"},"scripts":{"autostart":"nodemon --watch index.ts --watch lib --ext ts --delay 4 --exec ts-node -- node_modules/@atomist/automation-client/bin/start.js","autotest":"supervisor --watch index.ts,lib,test --extensions ts --no-restart-on exit --quiet --exec npm -- test","build":"run-s compile test lint doc","clean":"run-p clean:compile clean:doc clean:run","clean:compile":"rimraf git-info.json \"index.{d.ts,js{,.map}}\" \"{lib,test}/**/*.{d.ts,js{,.map}}\" lib/typings/types.ts","clean:dist":"run-s clean clean:npm","clean:doc":"rimraf doc","clean:npm":"rimraf node_modules","clean:run":"rimraf *-v8.log profile.txt log","compile":"run-s git:info gql:gen compile:ts","compile:ts":"tsc --project .","doc":"typedoc --mode modules --ignoreCompilerErrors --exclude \"**/*.d.ts\" --out doc index.ts lib","fmt":"tsfmt --replace","git:info":"atm-git-info","gql:gen":"atm-gql-gen","lint":"tslint --format verbose --project . --exclude \"node_modules/**\" --exclude \"**/*.d.ts\" \"**/*.ts\"","lint:fix":"npm run lint -- --fix","start":"atm-start","test":"mocha --require espower-typescript/guess \"test/**/*.test.ts\"","test:one":"mocha --require espower-typescript/guess \"test/**/${TEST:-*.test.ts}\"","typedoc":"npm run doc"},"engines":{"node":">=8.0.0","npm":">=5.0.0"},"gitHead":"d803195d3ac22ec16475d9bc93bf6c8e24d1b02b","readme":"# @atomist/automation-seed\n\n[![npm version](https://badge.fury.io/js/%40atomist%2Fautomation-seed.svg)](https://badge.fury.io/js/%40atomist%2Fautomation-seed)\n\nThis repository contains examples demonstrating use of the\n[Atomist][atomist] API for software.  You will find examples\nillustrating:\n\n-   Creating bot commands using _command handlers_\n-   Responding to DevOps events, e.g., commits pushed to a repository,\n    using _event handlers_\n\nThese examples use the [`@atomist/automation-client`][client] node\nmodule to implement a local client that connects to the Atomist API\nfor software.  See the [Atomist documentation][atomist-doc] for more\ninformation about Atomist, software delivery machines (SDM), and the\nAtomist API for software.\n\n[client]: https://github.com/atomist/automation-client-ts (@atomist/automation-client Node Module)\n[atomist-doc]: https://docs.atomist.com/ (Atomist Documentation)\n\n## Prerequisites\n\nBefore you can run this project, you will need an Atomist workspace.\nSee the [Atomist Getting Started Guide][atomist-start] for\ninstructions on how to get an Atomist workspace and connect it to your\nsource code repositories, continuous integration, chat platform, etc.\n\nYou will also need several other prerequisites to successfully run\nthis project.  See the [Atomist Developer Guide][atomist-dev] for\ninstructions on setting up your development environment.  Briefly, you\nwill need [Git][git], [Node.js][node], and the [Atomist\nCLI][atomist-cli] installed and properly configured on your system.\n\n[atomist-start]: https://docs.atomist.com/user/ (Atomist - Getting Started)\n[atomist-dev]: https://docs.atomist.com/developer/prerequisites/ (Atomist - Developer Prerequisites)\n[git]: https://git-scm.com/ (Git)\n[node]: https://nodejs.org/ (Node.js)\n[atomist-cli]: https://github.com/atomist/cli (Atomist Command-Line Interface)\n\n## Running\n\nOnce the prerequisites are met on your system, use `npm` to install\ndependencies and build the project.\n\n```\n$ npm install\n$ npm run build\n```\n\nYou can start up your SDM in the usual `npm` way.\n\n```\n$ npm start\n```\n\nThe [Atomist API Client documentation][atomist-client] has more\ncomplete instructions for running an SDM or other Atomist API client.\n\n[atomist-client]: https://docs.atomist.com/developer/client/ (Atomist - API Client)\n\n## Using\n\n### Invoking a command handler from Slack\n\nThis project contains the code to create and respond to a simple\n`hello world` bot command.  The code that defines the bot command and\nimplements responding to the command, i.e., the _command handler_, can\nbe found in [`HelloWorld.ts`][hello].  Once you have your local\nautomation client running (the previous step in this guide), you can\ninvoke the command handler by sending the Atomist bot the command as a\nmessage.  Be sure the Atomist bot is in the channel before sending it\nthe message.\n\n```\n/invite @atomist\n@atomist hello world\n```\n\nOnce you've submitted the command in Slack, you'll see the incoming\nand outgoing messages show up in the logs of your locally running\nautomation-client.  Ultimately, you should see the response from the\nbot in Slack.\n\n[hello]: https://github.com/atomist/automation-seed-ts/blob/master/src/commands/HelloWorld.ts (HelloWorld Command Handler)\n\nFeel free to modify the code in the `HelloWorld` command handler,\nNode.js will automatically reload the client, and see what happens!\n\n### Triggering an event handler\n\nWhile command handlers respond to commands you send the Atomist bot,\n_event handlers_ take action when different types of events occur in\nyour development and operations environment.  Some examples of events\nare commits pushed to a repo, or a CI build that fails, or an instance\nof a running service that becomes unhealthy.  Example responses to those\nevents are showing the commits in a Slack message, automatically\nrestarting the build, and triggering a PagerDuty alert, respectively.\n\nThe sample event handler in this project, [NotifyOnPush][nop-handler],\nwill notice when someone pushes new commits to a repository in the\nGitHub organization and send a notice of that push to all Slack\nchannels associated with that repository.\n\nIf you have followed the instructions above and are running these\nautomations against the atomist-playground Slack team and GitHub\norganization, go ahead and edit the [notify-on-push][nop-repo]\nrepository by adding some text to its [README][nop-readme].  Once you\nhave saved your changes, you should see that event appear in the\nconsole logs of your locally running automation client, followed by a\nlog of the actions the event handler is taking.  Once those actions\nare complete, you should see a new message in the\n[`#notify-on-push`][nop-channel] channel in the atomist-playground\nSlack team.\n\n[nop-handler]: https://github.com/atomist/automation-seed-ts/blob/master/src/events/NotifyOnPush.ts (Atomist NotifyOnPush Event Handler)\n[nop-repo]: https://github.com/atomist-playground/notify-on-push (Atomist NotifyOnPush Repository)\n[nop-readme]: https://github.com/atomist-playground/notify-on-push/edit/master/README.md (Edit NotifyOnPush README)\n[nop-channel]: https://atomist-playground.slack.com/messages/C7GNF6743/ (NotifyOnPush Slack Channel)\n\n## Support\n\nGeneral support questions should be discussed in the `#support`\nchannel in the [Atomist community Slack workspace][slack].\n\nIf you find a problem, please create an [issue][].\n\n[issue]: https://github.com/atomist/automation-seed-ts/issues\n\n## Development\n\nYou will need to install [node][] to build and test this project.\n\n### Build and Test\n\nUse the following package scripts to build, test, and perform other\ndevelopment tasks.\n\nCommand | Reason\n------- | ------\n`npm install` | install project dependencies\n`npm run build` | compile, test, lint, and generate docs\n`npm start` | start the Atomist API client\n`npm run autostart` | run the client, refreshing when files change\n`npm run lint` | run TSLint against the TypeScript\n`npm run compile` | generate types from GraphQL and compile TypeScript\n`npm test` | run tests\n`npm run autotest` | run tests every time a file changes\n`npm run clean` | remove files generated during the build\n\n### Release\n\nReleases are managed by the [Atomist SDM][atomist-sdm].  Press the\nrelease button in the Atomist dashboard or Slack.\n\n[atomist-sdm]: https://github.com/atomist/atomist-sdm (Atomist Software Delivery Machine)\n\n---\n\nCreated by [Atomist][atomist].\nNeed Help?  [Join our Slack team][slack].\n\n[atomist]: https://atomist.com/ (Atomist - How Teams Deliver Software)\n[slack]: https://join.atomist.com/ (Atomist Community Slack)\n","readmeFilename":"README.md","_id":"@atomist/automation-seed@0.12.1-20180819020933","_npmVersion":"6.4.0","_nodeVersion":"9.11.2","_npmUser":{"name":"atomist","email":"npm@atomist.com"},"dist":{"integrity":"sha512-bsHnY5zKifLN0Xf8VqY9Xnp7dHlg1AVxz5ESLL9GHXQvrTC0zyW7H0DSQVMRbLhwV8vXqXcXbN0R6lewI3E9dw==","shasum":"389d62c92d4325f9f7989d0a904379ee10353565","tarball":"https://registry.npmjs.org/@atomist/automation-seed/-/automation-seed-0.12.1-20180819020933.tgz","fileCount":25,"unpackedSize":174666,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbeNIGCRA9TVsSAnZWagAAl2oP/19K31pErAfRE9muQV/S\n+WS27VMhpv80W49ADRBbwTDP75Ku3Mnuuokx+YqrvAdBY5Juy2x/osolaxfX\nF/TSLZMredRXDr5w1Mf7+iKwr7HhLP7NQR9xsFsZvpLBYPTY5K2OhX0AbqNq\n5wu1oZlEy9kobuzKjnoM0KqxWl0l14hrtgHD4tJMBx1kiDlW2Pw13dKy9xV6\ncqF3StaWalyEfRhaX2McDdRrttkf+NCBDPBRalwBOrX7MNYfm2wH9LmeBlPC\nq6d2r8qsUlmkPDjPE9SRKHpMW2R+rKmBxxn0eXQidf1Q5chs7WyoN+eRLow7\nXdR1x29B8YglK7OBop9G/tULv/6DddhYkfDx3YhyW7HeBN5fa+L9mxBpUPX4\neZhHYu0Vi0xrxUkTdk0iw4/z40aOyFzrp/cZYh3i4Pmd+KSeWlzx7GCqugqn\nFEr4MOai1ksIEi9F82diMDxlxGNqYtheNWHrNT9Bji0NK+4Wxn92VchnkWRx\nMj4Jt4jUtobAP/BaiWhCCSdce+TgATO7M1jtON4LMmyy2u+LbVGB5+6PlYVG\nyctH24wRmbi/VE0cv51s9cNCmswtFxA5E2kdbdENZxA/0w9BQVJ20hlLcoAj\nFhjY5e5tj3kleTlS8DxKPW7ISpOQCO6TysjfPeyZ5CaZSv1wv4p7TP3D4ROt\nw1Wi\r\n=+AP+\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGgaeGD+1YOyLaETbbvejxfIUvLXEsuF02Cnj7ed8iUjAiABEdI2w/2cbBAISZf1HNsb0zm3HEQs+eWsNJD1egIMXQ=="}]},"maintainers":[{"name":"atomist","email":"npm@atomist.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/automation-seed_0.12.1-20180819020933_1534644741623_0.2940664520612446"},"_hasShrinkwrap":false},"0.12.1-20180821142050":{"name":"@atomist/automation-seed","version":"0.12.1-20180821142050","description":"Atomist automation client seed project","author":{"name":"Atomist"},"license":"Apache-2.0","repository":{"type":"git","url":"git+https://github.com/atomist/automation-seed-ts.git"},"homepage":"https://github.com/atomist/automation-seed-ts#readme","bugs":{"url":"https://github.com/atomist/automation-seed-ts/issues"},"keywords":["atomist","automation","seed"],"main":"./index.js","types":"./index.d.ts","dependencies":{"@atomist/automation-client":"^0.21.2","@types/app-root-path":"^1.2.4","app-root-path":"^2.0.1"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.5.7","@types/power-assert":"^1.5.0","espower-typescript":"^9.0.0","mocha":"^5.2.0","nodemon":"^1.18.3","npm-run-all":"^4.1.3","power-assert":"^1.6.0","rimraf":"^2.6.2","supervisor":"^0.12.0","ts-node":"^7.0.0","tslint":"^5.11.0","typedoc":"^0.11.1","typescript":"^2.9.2","typescript-formatter":"^7.2.2"},"directories":{"test":"test"},"scripts":{"autostart":"nodemon --watch index.ts --watch lib --ext ts --delay 4 --exec ts-node -- node_modules/@atomist/automation-client/bin/start.js","autotest":"supervisor --watch index.ts,lib,test --extensions ts --no-restart-on exit --quiet --exec npm -- test","build":"run-s compile test lint doc","clean":"run-p clean:compile clean:doc clean:run","clean:compile":"rimraf git-info.json \"index.{d.ts,js{,.map}}\" \"{lib,test}/**/*.{d.ts,js{,.map}}\" lib/typings/types.ts","clean:dist":"run-s clean clean:npm","clean:doc":"rimraf doc","clean:npm":"rimraf node_modules","clean:run":"rimraf *-v8.log profile.txt log","compile":"run-s git:info gql:gen compile:ts","compile:ts":"tsc --project .","doc":"typedoc --mode modules --ignoreCompilerErrors --exclude \"**/*.d.ts\" --out doc index.ts lib","fmt":"tsfmt --replace","git:info":"atm-git-info","gql:gen":"atm-gql-gen","lint":"tslint --format verbose --project . --exclude \"node_modules/**\" --exclude \"**/*.d.ts\" \"**/*.ts\"","lint:fix":"npm run lint -- --fix","start":"atm-start","test":"mocha --require espower-typescript/guess \"test/**/*.test.ts\"","test:one":"mocha --require espower-typescript/guess \"test/**/${TEST:-*.test.ts}\"","typedoc":"npm run doc"},"engines":{"node":">=8.0.0","npm":">=5.0.0"},"gitHead":"6e0bfac84a04d13efb96f065d79a969430c61fa9","readme":"# @atomist/automation-seed\n\n[![npm version](https://badge.fury.io/js/%40atomist%2Fautomation-seed.svg)](https://badge.fury.io/js/%40atomist%2Fautomation-seed)\n\nThis repository contains examples demonstrating use of the\n[Atomist][atomist] API for software.  You will find examples\nillustrating:\n\n-   Creating bot commands using _command handlers_\n-   Responding to DevOps events, e.g., commits pushed to a repository,\n    using _event handlers_\n\nThese examples use the [`@atomist/automation-client`][client] node\nmodule to implement a local client that connects to the Atomist API\nfor software.  See the [Atomist documentation][atomist-doc] for more\ninformation about Atomist, software delivery machines (SDM), and the\nAtomist API for software.\n\n[client]: https://github.com/atomist/automation-client-ts (@atomist/automation-client Node Module)\n[atomist-doc]: https://docs.atomist.com/ (Atomist Documentation)\n\n## Prerequisites\n\nBefore you can run this project, you will need an Atomist workspace.\nSee the [Atomist Getting Started Guide][atomist-start] for\ninstructions on how to get an Atomist workspace and connect it to your\nsource code repositories, continuous integration, chat platform, etc.\n\nYou will also need several other prerequisites to successfully run\nthis project.  See the [Atomist Developer Guide][atomist-dev] for\ninstructions on setting up your development environment.  Briefly, you\nwill need [Git][git], [Node.js][node], and the [Atomist\nCLI][atomist-cli] installed and properly configured on your system.\n\n[atomist-start]: https://docs.atomist.com/user/ (Atomist - Getting Started)\n[atomist-dev]: https://docs.atomist.com/developer/prerequisites/ (Atomist - Developer Prerequisites)\n[git]: https://git-scm.com/ (Git)\n[atomist-cli]: https://github.com/atomist/cli (Atomist Command-Line Interface)\n\n## Running\n\nOnce the prerequisites are met on your system, use `npm` to install\ndependencies and build the project.\n\n```\n$ npm install\n$ npm run build\n```\n\nYou can start up your SDM in the usual `npm` way.\n\n```\n$ npm start\n```\n\nThe [Atomist API Client documentation][atomist-client] has more\ncomplete instructions for running an SDM or other Atomist API client.\n\n[atomist-client]: https://docs.atomist.com/developer/client/ (Atomist - API Client)\n\n## Using\n\n### Invoking a command handler from Slack\n\nThis project contains the code to create and respond to a simple\n`hello world` bot command.  The code that defines the bot command and\nimplements responding to the command, i.e., the _command handler_, can\nbe found in [`HelloWorld.ts`][hello].  Once you have your local\nautomation client running (the previous step in this guide), you can\ninvoke the command handler by sending the Atomist bot the command as a\nmessage.  Be sure the Atomist bot is in the channel before sending it\nthe message.\n\n```\n/invite @atomist\n@atomist hello world\n```\n\nOnce you've submitted the command in Slack, you'll see the incoming\nand outgoing messages show up in the logs of your locally running\nautomation-client.  Ultimately, you should see the response from the\nbot in Slack.\n\n[hello]: https://github.com/atomist/automation-seed-ts/blob/master/src/commands/HelloWorld.ts (HelloWorld Command Handler)\n\nFeel free to modify the code in the `HelloWorld` command handler,\nNode.js will automatically reload the client, and see what happens!\n\n### Triggering an event handler\n\nWhile command handlers respond to commands you send the Atomist bot,\n_event handlers_ take action when different types of events occur in\nyour development and operations environment.  Some examples of events\nare commits pushed to a repo, or a CI build that fails, or an instance\nof a running service that becomes unhealthy.  Example responses to those\nevents are showing the commits in a Slack message, automatically\nrestarting the build, and triggering a PagerDuty alert, respectively.\n\nThe sample event handler in this project, [NotifyOnPush][nop-handler],\nwill notice when someone pushes new commits to a repository in the\nGitHub organization and send a notice of that push to all Slack\nchannels associated with that repository.\n\nIf you have followed the instructions above and are running these\nautomations against the atomist-playground Slack team and GitHub\norganization, go ahead and edit the [notify-on-push][nop-repo]\nrepository by adding some text to its [README][nop-readme].  Once you\nhave saved your changes, you should see that event appear in the\nconsole logs of your locally running automation client, followed by a\nlog of the actions the event handler is taking.  Once those actions\nare complete, you should see a new message in the\n[`#notify-on-push`][nop-channel] channel in the atomist-playground\nSlack team.\n\n[nop-handler]: https://github.com/atomist/automation-seed-ts/blob/master/src/events/NotifyOnPush.ts (Atomist NotifyOnPush Event Handler)\n[nop-repo]: https://github.com/atomist-playground/notify-on-push (Atomist NotifyOnPush Repository)\n[nop-readme]: https://github.com/atomist-playground/notify-on-push/edit/master/README.md (Edit NotifyOnPush README)\n[nop-channel]: https://atomist-playground.slack.com/messages/C7GNF6743/ (NotifyOnPush Slack Channel)\n\n## Support\n\nGeneral support questions should be discussed in the `#support`\nchannel in the [Atomist community Slack workspace][slack].\n\nIf you find a problem, please create an [issue][].\n\n[issue]: https://github.com/atomist/automation-seed-ts/issues\n\n## Development\n\nYou will need to install [node][] to build and test this project.\n\n[node]: https://nodejs.org/ (Node.js)\n\n### Build and Test\n\nUse the following package scripts to build, test, and perform other\ndevelopment tasks.\n\nCommand | Reason\n------- | ------\n`npm install` | install project dependencies\n`npm run build` | compile, test, lint, and generate docs\n`npm start` | start the Atomist API client\n`npm run autostart` | run the client, refreshing when files change\n`npm run lint` | run TSLint against the TypeScript\n`npm run compile` | generate types from GraphQL and compile TypeScript\n`npm test` | run tests\n`npm run autotest` | run tests every time a file changes\n`npm run clean` | remove files generated during the build\n\n### Release\n\nReleases are managed by the [Atomist SDM][atomist-sdm].  Press the\nrelease button in the Atomist dashboard or Slack.\n\n[atomist-sdm]: https://github.com/atomist/atomist-sdm (Atomist Software Delivery Machine)\n\n---\n\nCreated by [Atomist][atomist].\nNeed Help?  [Join our Slack workspace][slack].\n\n[atomist]: https://atomist.com/ (Atomist - How Teams Deliver Software)\n[slack]: https://join.atomist.com/ (Atomist Community Slack)\n","readmeFilename":"README.md","_id":"@atomist/automation-seed@0.12.1-20180821142050","_npmVersion":"6.4.0","_nodeVersion":"9.11.2","_npmUser":{"name":"atomist","email":"npm@atomist.com"},"dist":{"integrity":"sha512-KiG2lxYHndj5rOHNok1qS7UX1utF5shgO8pyhkMq+xkVInW/PPUP+w53iweYnuZ5VEu2J6VSD32TqHZ87xKquQ==","shasum":"8361b6675725cea968bb15c331657d87122d0e6f","tarball":"https://registry.npmjs.org/@atomist/automation-seed/-/automation-seed-0.12.1-20180821142050.tgz","fileCount":25,"unpackedSize":165657,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbfCCrCRA9TVsSAnZWagAA8U4P/R6W3mv1v1dFoq2m56Fx\n/EVM+G7E8UNDwcjEQdP8e1uqMYsmMGo8fnfrvIxRr2HUwflouNV6IPQc9TFm\ny/rKFnrfVYJ43mSXGvMQ3e7ZUQRZqRpUzTZifnCDlfw/acMAvfjUc0W1juR8\n+Kj2bz3an4LpMYjfYfW320P2qLOSYCNzywS02TYSm9gGURWg+5ReSk8ZmYcA\nqHY/IxMWlLURmPGlf/POcVxjX+PwTVfsPyj2n/+saWb1KS61NaLg8nBAwzyH\nr+v5OR20Rd8GuIippNRVEubDtDH5V0CF4iDADM/q+TEyCmY6xi7qUGAHpZpA\nSm+UCcaLwiBKi0q2z8eBoxhXz7E7BRPTvFDF6HMSCcnSnDvnIN4aVbRtaBtv\nIWfFzb2+WbzxiN3g88P8Us1H0iWz6AUofKo1XtV+SHthF4W3yWHUAH2P7MXI\nkzYtWcJKPNnsEgqBSgByHM4MnKFKuweGZ/KepTFXyjVrKOZb74X6xyr+MuRe\n4T1yo2xq1IqVuZqqPMaiYSBWX4P5TtnhepzXVsKpc0CnvVduDq8qlXOPWPYZ\nXf8Hkda3nqosJloSrjR9rR6bslWrfVQqa684akmEeixQkhGtXwecKjZ14JpW\nVHLg8l4mgNNCS+HIVyz8mqfS00UuLxyVC1xaMbfYh8VQrLPDo2GYSr4Wx0ka\nEPEl\r\n=CXMy\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFgCVjfoCFa8LLhCfL8z0321Qyblw/E/aYOyYEmLtSa1AiEAuZqOxlJI54ig0/KMjv1PyX/GRZMIRvWvY5VMo2yoCp0="}]},"maintainers":[{"name":"atomist","email":"npm@atomist.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/automation-seed_0.12.1-20180821142050_1534861482554_0.1734380387941512"},"_hasShrinkwrap":false},"0.12.1-20180821192601":{"name":"@atomist/automation-seed","version":"0.12.1-20180821192601","description":"Atomist automation client seed project","author":{"name":"Atomist"},"license":"Apache-2.0","repository":{"type":"git","url":"git+https://github.com/atomist/automation-seed-ts.git"},"homepage":"https://github.com/atomist/automation-seed-ts#readme","bugs":{"url":"https://github.com/atomist/automation-seed-ts/issues"},"keywords":["atomist","automation","seed"],"main":"./index.js","types":"./index.d.ts","dependencies":{"@atomist/automation-client":"^0.21.2","@types/app-root-path":"^1.2.4","app-root-path":"^2.0.1"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.5.7","@types/power-assert":"^1.5.0","espower-typescript":"^9.0.0","mocha":"^5.2.0","nodemon":"^1.18.3","npm-run-all":"^4.1.3","power-assert":"^1.6.0","rimraf":"^2.6.2","supervisor":"^0.12.0","ts-node":"^7.0.0","tslint":"^5.11.0","typedoc":"^0.11.1","typescript":"^2.9.2","typescript-formatter":"^7.2.2"},"directories":{"test":"test"},"scripts":{"autostart":"nodemon --watch index.ts --watch lib --ext ts --delay 4 --exec ts-node -- node_modules/@atomist/automation-client/bin/start.js","autotest":"supervisor --watch index.ts,lib,test --extensions ts --no-restart-on exit --quiet --exec npm -- test","build":"run-s compile test lint doc","clean":"run-p clean:compile clean:doc clean:run","clean:compile":"rimraf git-info.json \"index.{d.ts,js{,.map}}\" \"{lib,test}/**/*.{d.ts,js{,.map}}\" lib/typings/types.ts","clean:dist":"run-s clean clean:npm","clean:doc":"rimraf doc","clean:npm":"rimraf node_modules","clean:run":"rimraf *-v8.log profile.txt log","compile":"run-s git:info gql:gen compile:ts","compile:ts":"tsc --project .","doc":"typedoc --mode modules --ignoreCompilerErrors --exclude \"**/*.d.ts\" --out doc index.ts lib","fmt":"tsfmt --replace","git:info":"atm-git-info","gql:gen":"atm-gql-gen","lint":"tslint --format verbose --project . --exclude \"node_modules/**\" --exclude \"**/*.d.ts\" \"**/*.ts\"","lint:fix":"npm run lint -- --fix","start":"atm-start","test":"mocha --require espower-typescript/guess \"test/**/*.test.ts\"","test:one":"mocha --require espower-typescript/guess \"test/**/${TEST:-*.test.ts}\"","typedoc":"npm run doc"},"engines":{"node":">=8.0.0","npm":">=5.0.0"},"gitHead":"06718337d8372bb1253f0abc58f29cfc8b58bca2","readme":"# @atomist/automation-seed\n\n[![npm version](https://badge.fury.io/js/%40atomist%2Fautomation-seed.svg)](https://badge.fury.io/js/%40atomist%2Fautomation-seed)\n\nThis repository contains examples demonstrating use of the\n[Atomist][atomist] API for software.  You will find examples\nillustrating:\n\n-   Creating bot commands using _command handlers_\n-   Responding to DevOps events, e.g., commits pushed to a repository,\n    using _event handlers_\n\nThese examples use the [`@atomist/automation-client`][client] node\nmodule to implement a local client that connects to the Atomist API\nfor software.  See the [Atomist documentation][atomist-doc] for more\ninformation about Atomist, software delivery machines (SDM), and the\nAtomist API for software.\n\n[client]: https://github.com/atomist/automation-client-ts (@atomist/automation-client Node Module)\n[atomist-doc]: https://docs.atomist.com/ (Atomist Documentation)\n\n## Prerequisites\n\nBefore you can run this project, you will need an Atomist workspace.\nSee the [Atomist Getting Started Guide][atomist-start] for\ninstructions on how to get an Atomist workspace and connect it to your\nsource code repositories, continuous integration, chat platform, etc.\n\nYou will also need several other prerequisites to successfully run\nthis project.  See the [Atomist Developer Guide][atomist-dev] for\ninstructions on setting up your development environment.  Briefly, you\nwill need [Git][git], [Node.js][node], and the [Atomist\nCLI][atomist-cli] installed and properly configured on your system.\n\n[atomist-start]: https://docs.atomist.com/user/ (Atomist - Getting Started)\n[atomist-dev]: https://docs.atomist.com/developer/prerequisites/ (Atomist - Developer Prerequisites)\n[git]: https://git-scm.com/ (Git)\n[atomist-cli]: https://github.com/atomist/cli (Atomist Command-Line Interface)\n\n## Running\n\nOnce the prerequisites are met on your system, use `npm` to install\ndependencies and build the project.\n\n```\n$ npm install\n$ npm run build\n```\n\nYou can start up your SDM in the usual `npm` way.\n\n```\n$ npm start\n```\n\nThe [Atomist API Client documentation][atomist-client] has more\ncomplete instructions for running an SDM or other Atomist API client.\n\n[atomist-client]: https://docs.atomist.com/developer/client/ (Atomist - API Client)\n\n## Using\n\n### Invoking a command handler from Slack\n\nThis project contains the code to create and respond to a simple\n`hello world` bot command.  The code that defines the bot command and\nimplements responding to the command, i.e., the _command handler_, can\nbe found in [`HelloWorld.ts`][hello].  Once you have your local\nautomation client running (the previous step in this guide), you can\ninvoke the command handler by sending the Atomist bot the command as a\nmessage.  Be sure the Atomist bot is in the channel before sending it\nthe message.\n\n```\n/invite @atomist\n@atomist hello world\n```\n\nOnce you've submitted the command in Slack, you'll see the incoming\nand outgoing messages show up in the logs of your locally running\nautomation-client.  Ultimately, you should see the response from the\nbot in Slack.\n\n[hello]: https://github.com/atomist/automation-seed-ts/blob/master/src/commands/HelloWorld.ts (HelloWorld Command Handler)\n\nFeel free to modify the code in the `HelloWorld` command handler,\nNode.js will automatically reload the client, and see what happens!\n\n### Triggering an event handler\n\nWhile command handlers respond to commands you send the Atomist bot,\n_event handlers_ take action when different types of events occur in\nyour development and operations environment.  Some examples of events\nare commits pushed to a repo, or a CI build that fails, or an instance\nof a running service that becomes unhealthy.  Example responses to those\nevents are showing the commits in a Slack message, automatically\nrestarting the build, and triggering a PagerDuty alert, respectively.\n\nThe sample event handler in this project, [NotifyOnPush][nop-handler],\nwill notice when someone pushes new commits to a repository in the\nGitHub organization and send a notice of that push to all Slack\nchannels associated with that repository.\n\nIf you have followed the instructions above and are running these\nautomations against the atomist-playground Slack team and GitHub\norganization, go ahead and edit the [notify-on-push][nop-repo]\nrepository by adding some text to its [README][nop-readme].  Once you\nhave saved your changes, you should see that event appear in the\nconsole logs of your locally running automation client, followed by a\nlog of the actions the event handler is taking.  Once those actions\nare complete, you should see a new message in the\n[`#notify-on-push`][nop-channel] channel in the atomist-playground\nSlack team.\n\n[nop-handler]: https://github.com/atomist/automation-seed-ts/blob/master/src/events/NotifyOnPush.ts (Atomist NotifyOnPush Event Handler)\n[nop-repo]: https://github.com/atomist-playground/notify-on-push (Atomist NotifyOnPush Repository)\n[nop-readme]: https://github.com/atomist-playground/notify-on-push/edit/master/README.md (Edit NotifyOnPush README)\n[nop-channel]: https://atomist-playground.slack.com/messages/C7GNF6743/ (NotifyOnPush Slack Channel)\n\n## Support\n\nGeneral support questions should be discussed in the `#support`\nchannel in the [Atomist community Slack workspace][slack].\n\nIf you find a problem, please create an [issue][].\n\n[issue]: https://github.com/atomist/automation-seed-ts/issues\n\n## Development\n\nYou will need to install [node][] to build and test this project.\n\n[node]: https://nodejs.org/ (Node.js)\n\n### Build and Test\n\nUse the following package scripts to build, test, and perform other\ndevelopment tasks.\n\nCommand | Reason\n------- | ------\n`npm install` | install project dependencies\n`npm run build` | compile, test, lint, and generate docs\n`npm start` | start the Atomist API client\n`npm run autostart` | run the client, refreshing when files change\n`npm run lint` | run TSLint against the TypeScript\n`npm run compile` | generate types from GraphQL and compile TypeScript\n`npm test` | run tests\n`npm run autotest` | run tests every time a file changes\n`npm run clean` | remove files generated during the build\n\n### Release\n\nReleases are managed by the [Atomist SDM][atomist-sdm].  Press the\nrelease button in the Atomist dashboard or Slack.\n\n[atomist-sdm]: https://github.com/atomist/atomist-sdm (Atomist Software Delivery Machine)\n\n---\n\nCreated by [Atomist][atomist].\nNeed Help?  [Join our Slack workspace][slack].\n\n[atomist]: https://atomist.com/ (Atomist - How Teams Deliver Software)\n[slack]: https://join.atomist.com/ (Atomist Community Slack)\n","readmeFilename":"README.md","_id":"@atomist/automation-seed@0.12.1-20180821192601","_npmVersion":"6.4.0","_nodeVersion":"9.11.2","_npmUser":{"name":"atomist","email":"npm@atomist.com"},"dist":{"integrity":"sha512-61nPQ7tF1ozSHyU+UkF0PnlhtIU/F6FivYHbeRXt5x0GFLfqfSIgnZUORN2iwfCc/n3IZZSTY2pG2EAjfrQ3uw==","shasum":"4da6ddde00a8e54915f659ac395dbcb2b3e220bb","tarball":"https://registry.npmjs.org/@atomist/automation-seed/-/automation-seed-0.12.1-20180821192601.tgz","fileCount":25,"unpackedSize":165657,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbfGgwCRA9TVsSAnZWagAAOe8P/j7gG6OMsfa2olmt+KDM\nvelpyXIC/dsT+xV30Vr2DUDuUM9WsdAy8cyeLV/I3LT9CWkMFw0ZpDoz5ugN\nMpOzogk4bqtYw27vR8MEjro99Wm0a9s1f4xVh9HFE+LVY6fH3b399YZ1e9tG\nO45uu5rPzumv/LKXKqAevn2lEoI4QqX6vqvOt5KF432INsE0t1dzyM/2QTwe\n4LCgTYWfoM2IC4MNMvyAIaGd0ntC+y9om9bMw8+RAcJgmLiFgXkYFI0BGZmf\n3Ts7UQS4bIsPJHzRxKVnvXdxNioUd+Q4IjAE4wwo/Q4TkK8+MN1dJ9MtOUgE\n7/OGB5vv2Ulobm7hQyGyV071hHYCVFEzEVmHMatwm84QPv1ziyuB1C+q6qgu\nY8yKK1L985ZXXPDCwDEnOg8KD+b6qIX52G5kBgwXIdjecccb72vpZiF3ocWL\nZ+qvcDGq0DyJzZuxCdT7SrqIUUgAOoMR84Q/bJTj5aywVJ+gngvfmlbIei0p\nkFYUnpDzpAhUwf4VNUy7NIxNwtxXryfJO0XnFbh3nim4BrwCj99J/z9HMFcW\nho31Owto5D2an5bYiBZkcMyzEEqX6DAkkZlvERZAP1mwkwxS5ycNeZLI1VMi\n4aoLeRVrQO1sFcw+SUcrbCZwU14JXEM02dlwEuxGt6DPwgQgW2dOOAYeX0Ol\nMzC3\r\n=T8SM\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCxQraWUusqx6hT5RJaFB+Gzbrr/odGJ9clEkM6ANSaZgIgbVktqj4Jb2c+GZIoEd3S9VcmnXhQL7q+AtLoyCQvYv4="}]},"maintainers":[{"name":"atomist","email":"npm@atomist.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/automation-seed_0.12.1-20180821192601_1534879792047_0.0186296690541925"},"_hasShrinkwrap":false},"0.12.1-20180822020716":{"name":"@atomist/automation-seed","version":"0.12.1-20180822020716","description":"Atomist automation client seed project","author":{"name":"Atomist"},"license":"Apache-2.0","repository":{"type":"git","url":"git+https://github.com/atomist/automation-seed-ts.git"},"homepage":"https://github.com/atomist/automation-seed-ts#readme","bugs":{"url":"https://github.com/atomist/automation-seed-ts/issues"},"keywords":["atomist","automation","seed"],"main":"./index.js","types":"./index.d.ts","dependencies":{"@atomist/automation-client":"^0.21.2","@types/app-root-path":"^1.2.4","app-root-path":"^2.0.1"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.5.7","@types/power-assert":"^1.5.0","espower-typescript":"^9.0.0","mocha":"^5.2.0","nodemon":"^1.18.3","npm-run-all":"^4.1.3","power-assert":"^1.6.0","rimraf":"^2.6.2","supervisor":"^0.12.0","ts-node":"^7.0.0","tslint":"^5.11.0","typedoc":"^0.11.1","typescript":"^2.9.2"},"directories":{"test":"test"},"scripts":{"autostart":"nodemon --watch index.ts --watch lib --ext ts --delay 4 --exec ts-node -- node_modules/@atomist/automation-client/bin/start.js","autotest":"supervisor --watch index.ts,lib,test --extensions ts --no-restart-on exit --quiet --exec npm -- test","build":"run-s compile test lint doc","clean":"run-p clean:compile clean:doc clean:run","clean:compile":"rimraf git-info.json \"index.{d.ts,js{,.map}}\" \"{lib,test}/**/*.{d.ts,js{,.map}}\" lib/typings/types.ts","clean:dist":"run-s clean clean:npm","clean:doc":"rimraf doc","clean:npm":"rimraf node_modules","clean:run":"rimraf *-v8.log profile.txt log","compile":"run-s git:info gql:gen compile:ts","compile:ts":"tsc --project .","doc":"typedoc --mode modules --ignoreCompilerErrors --exclude \"**/*.d.ts\" --out doc index.ts lib","git:info":"atm-git-info","gql:gen":"atm-gql-gen","lint":"tslint --format verbose --project . --exclude \"node_modules/**\" --exclude \"**/*.d.ts\" \"**/*.ts\"","lint:fix":"npm run lint -- --fix","start":"atm-start","test":"mocha --require espower-typescript/guess \"test/**/*.test.ts\"","test:one":"mocha --require espower-typescript/guess \"test/**/${TEST:-*.test.ts}\"","typedoc":"npm run doc"},"engines":{"node":">=8.0.0","npm":">=5.0.0"},"gitHead":"88f592efa8080dccbce1babbe5eebc0c649c29e6","readme":"# @atomist/automation-seed\n\n[![npm version](https://badge.fury.io/js/%40atomist%2Fautomation-seed.svg)](https://badge.fury.io/js/%40atomist%2Fautomation-seed)\n\nThis repository contains examples demonstrating use of the\n[Atomist][atomist] API for software.  You will find examples\nillustrating:\n\n-   Creating bot commands using _command handlers_\n-   Responding to DevOps events, e.g., commits pushed to a repository,\n    using _event handlers_\n\nThese examples use the [`@atomist/automation-client`][client] node\nmodule to implement a local client that connects to the Atomist API\nfor software.  See the [Atomist documentation][atomist-doc] for more\ninformation about Atomist, software delivery machines (SDM), and the\nAtomist API for software.\n\n[client]: https://github.com/atomist/automation-client-ts (@atomist/automation-client Node Module)\n[atomist-doc]: https://docs.atomist.com/ (Atomist Documentation)\n\n## Prerequisites\n\nBefore you can run this project, you will need an Atomist workspace.\nSee the [Atomist Getting Started Guide][atomist-start] for\ninstructions on how to get an Atomist workspace and connect it to your\nsource code repositories, continuous integration, chat platform, etc.\n\nYou will also need several other prerequisites to successfully run\nthis project.  See the [Atomist Developer Guide][atomist-dev] for\ninstructions on setting up your development environment.  Briefly, you\nwill need [Git][git], [Node.js][node], and the [Atomist\nCLI][atomist-cli] installed and properly configured on your system.\n\n[atomist-start]: https://docs.atomist.com/user/ (Atomist - Getting Started)\n[atomist-dev]: https://docs.atomist.com/developer/prerequisites/ (Atomist - Developer Prerequisites)\n[git]: https://git-scm.com/ (Git)\n[atomist-cli]: https://github.com/atomist/cli (Atomist Command-Line Interface)\n\n## Running\n\nOnce the prerequisites are met on your system, use `npm` to install\ndependencies and build the project.\n\n```\n$ npm install\n$ npm run build\n```\n\nYou can start up your SDM in the usual `npm` way.\n\n```\n$ npm start\n```\n\nThe [Atomist API Client documentation][atomist-client] has more\ncomplete instructions for running an SDM or other Atomist API client.\n\n[atomist-client]: https://docs.atomist.com/developer/client/ (Atomist - API Client)\n\n## Using\n\n### Invoking a command handler from Slack\n\nThis project contains the code to create and respond to a simple\n`hello world` bot command.  The code that defines the bot command and\nimplements responding to the command, i.e., the _command handler_, can\nbe found in [`HelloWorld.ts`][hello].  Once you have your local\nautomation client running (the previous step in this guide), you can\ninvoke the command handler by sending the Atomist bot the command as a\nmessage.  Be sure the Atomist bot is in the channel before sending it\nthe message.\n\n```\n/invite @atomist\n@atomist hello world\n```\n\nOnce you've submitted the command in Slack, you'll see the incoming\nand outgoing messages show up in the logs of your locally running\nautomation-client.  Ultimately, you should see the response from the\nbot in Slack.\n\n[hello]: https://github.com/atomist/automation-seed-ts/blob/master/src/commands/HelloWorld.ts (HelloWorld Command Handler)\n\nFeel free to modify the code in the `HelloWorld` command handler,\nNode.js will automatically reload the client, and see what happens!\n\n### Triggering an event handler\n\nWhile command handlers respond to commands you send the Atomist bot,\n_event handlers_ take action when different types of events occur in\nyour development and operations environment.  Some examples of events\nare commits pushed to a repo, or a CI build that fails, or an instance\nof a running service that becomes unhealthy.  Example responses to those\nevents are showing the commits in a Slack message, automatically\nrestarting the build, and triggering a PagerDuty alert, respectively.\n\nThe sample event handler in this project, [NotifyOnPush][nop-handler],\nwill notice when someone pushes new commits to a repository in the\nGitHub organization and send a notice of that push to all Slack\nchannels associated with that repository.\n\nIf you have followed the instructions above and are running these\nautomations against the atomist-playground Slack team and GitHub\norganization, go ahead and edit the [notify-on-push][nop-repo]\nrepository by adding some text to its [README][nop-readme].  Once you\nhave saved your changes, you should see that event appear in the\nconsole logs of your locally running automation client, followed by a\nlog of the actions the event handler is taking.  Once those actions\nare complete, you should see a new message in the\n[`#notify-on-push`][nop-channel] channel in the atomist-playground\nSlack team.\n\n[nop-handler]: https://github.com/atomist/automation-seed-ts/blob/master/src/events/NotifyOnPush.ts (Atomist NotifyOnPush Event Handler)\n[nop-repo]: https://github.com/atomist-playground/notify-on-push (Atomist NotifyOnPush Repository)\n[nop-readme]: https://github.com/atomist-playground/notify-on-push/edit/master/README.md (Edit NotifyOnPush README)\n[nop-channel]: https://atomist-playground.slack.com/messages/C7GNF6743/ (NotifyOnPush Slack Channel)\n\n## Support\n\nGeneral support questions should be discussed in the `#support`\nchannel in the [Atomist community Slack workspace][slack].\n\nIf you find a problem, please create an [issue][].\n\n[issue]: https://github.com/atomist/automation-seed-ts/issues\n\n## Development\n\nYou will need to install [node][] to build and test this project.\n\n[node]: https://nodejs.org/ (Node.js)\n\n### Build and Test\n\nUse the following package scripts to build, test, and perform other\ndevelopment tasks.\n\nCommand | Reason\n------- | ------\n`npm install` | install project dependencies\n`npm run build` | compile, test, lint, and generate docs\n`npm start` | start the Atomist API client\n`npm run autostart` | run the client, refreshing when files change\n`npm run lint` | run TSLint against the TypeScript\n`npm run compile` | generate types from GraphQL and compile TypeScript\n`npm test` | run tests\n`npm run autotest` | run tests every time a file changes\n`npm run clean` | remove files generated during the build\n\n### Release\n\nReleases are managed by the [Atomist SDM][atomist-sdm].  Press the\nrelease button in the Atomist dashboard or Slack.\n\n[atomist-sdm]: https://github.com/atomist/atomist-sdm (Atomist Software Delivery Machine)\n\n---\n\nCreated by [Atomist][atomist].\nNeed Help?  [Join our Slack workspace][slack].\n\n[atomist]: https://atomist.com/ (Atomist - How Teams Deliver Software)\n[slack]: https://join.atomist.com/ (Atomist Community Slack)\n","readmeFilename":"README.md","_id":"@atomist/automation-seed@0.12.1-20180822020716","_npmVersion":"6.4.0","_nodeVersion":"9.11.2","_npmUser":{"name":"atomist","email":"npm@atomist.com"},"dist":{"integrity":"sha512-JqNhT+rY5msUCPt4yxN6diAijnPfo/L4xyg44PRDtIonZvb2zDBvmaT6MsXeXydDLUkvoruQbywCFMWp42/Mog==","shasum":"a06ce141dfc741691fd01b30222793d2523e0893","tarball":"https://registry.npmjs.org/@atomist/automation-seed/-/automation-seed-0.12.1-20180822020716.tgz","fileCount":25,"unpackedSize":165589,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbfMYOCRA9TVsSAnZWagAAdb4P/2LNr9qKeg04aBRK8n8W\nRzYt3M6bZh0pdqdK0bWZDmwjp4LQ33xVB5fboxn9yhtaHtz9iZxr5+N8pJfq\n3ynzRZnlhpoAtoLf+ZmcZYdqy2MgNchVA9HjUpZHe7+YuCc4jA72b5uZyvsc\nhD+wGmg1oiddqQh759H30KP7lk1ExuudZnMyIr5PYl58+UMeQ4oxU+8vN7GU\nXCJ0XTMH2JSuGf0NobblyEFQ7APsE2jinmOH7hNYvUORhGIdXUFW4ddmm36A\nihi2Jt1qQSCBDLNwZhZ7hwd/bSf02l8K3jxHUxjfcUX+Vantqxcz8o0zcTh7\nYlta603dXbOsFzm85KkAczZ2Do34muFJj9DbJ5JgQ9BytovlW7rdiYo5lKDm\nQ4iIrsCfZgYFciM7cuWBI37Q9EVpuT2pyOB8HEtUQWrYQrQvEabcc4Cn/Ag/\nBu7bebBwSu6f3MSNXMaeYaRHRZ/Ah9RFO4CHwHcVEXVDIXz3tFaLtYpDoPaS\nt5DCwgBhDPsHnrLdF62EBoS3LJIqBK61pR3lvL0/AYT8Jd4jPMh3qarYA+m7\naCUsf8SFZHJJwW+9QgNakv/WdvQJK2lvmZ4IbrAks8epY2QnijmqtaxTFsqB\nc49AfOSVG4zFV7F0bT465a31ZFhwdXsjrIOWTFsoM7Oso0sQOhkHc3XtOFSK\nCj6K\r\n=BwuA\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICkT87GeI8Wlr9FrxdvnZ7lL/bfyzcb5Ko8wFHzvbRXFAiEAmBJmc2VLYKKAgDUz/HQ1SoFmmXE8qu4Yy9HXUuZJ6gY="}]},"maintainers":[{"name":"atomist","email":"npm@atomist.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/automation-seed_0.12.1-20180822020716_1534903819295_0.7572506982761527"},"_hasShrinkwrap":false},"0.12.1-20180822161843":{"name":"@atomist/automation-seed","version":"0.12.1-20180822161843","description":"Atomist automation client seed project","author":{"name":"Atomist","email":"support@atomist.com","url":"https://atomist.com/"},"license":"Apache-2.0","homepage":"https://github.com/atomist/automation-seed-ts#readme","repository":{"type":"git","url":"git+https://github.com/atomist/automation-seed-ts.git"},"bugs":{"url":"https://github.com/atomist/automation-seed-ts/issues"},"keywords":["atomist","automation","seed"],"main":"./index.js","types":"./index.d.ts","dependencies":{"@atomist/automation-client":"^0.21.2","@types/app-root-path":"^1.2.4","app-root-path":"^2.0.1"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.5.7","@types/power-assert":"^1.5.0","espower-typescript":"^9.0.0","mocha":"^5.2.0","nodemon":"^1.18.3","npm-run-all":"^4.1.3","power-assert":"^1.6.0","rimraf":"^2.6.2","supervisor":"^0.12.0","ts-node":"^7.0.0","tslint":"^5.11.0","typedoc":"^0.11.1","typescript":"^2.9.2"},"directories":{"test":"test"},"scripts":{"autostart":"nodemon --watch index.ts --watch lib --ext ts --delay 4 --exec ts-node -- node_modules/@atomist/automation-client/bin/start.js","autotest":"supervisor --watch index.ts,lib,test --extensions ts --no-restart-on exit --quiet --exec npm -- test","build":"run-s compile test lint doc","clean":"run-p clean:compile clean:doc clean:run","clean:compile":"rimraf git-info.json \"index.{d.ts,js{,.map}}\" \"{lib,test}/**/*.{d.ts,js{,.map}}\" lib/typings/types.ts","clean:dist":"run-s clean clean:npm","clean:doc":"rimraf doc","clean:npm":"rimraf node_modules","clean:run":"rimraf *-v8.log profile.txt log","compile":"run-s git:info gql:gen compile:ts","compile:ts":"tsc --project .","doc":"typedoc --mode modules --ignoreCompilerErrors --exclude \"**/*.d.ts\" --out doc index.ts lib","git:info":"atm-git-info","gql:gen":"atm-gql-gen","lint":"tslint --format verbose --project . --exclude \"node_modules/**\" --exclude \"**/*.d.ts\" \"**/*.ts\"","lint:fix":"npm run lint -- --fix","start":"atm-start","test":"mocha --require espower-typescript/guess \"test/**/*.test.ts\"","test:one":"mocha --require espower-typescript/guess \"test/**/${TEST:-*.test.ts}\"","typedoc":"npm run doc"},"engines":{"node":">=8.0.0","npm":">=5.0.0"},"gitHead":"1420b8c436b55445b040c98709b4b2e5bd99986b","readme":"# @atomist/automation-seed\n\n[![npm version](https://badge.fury.io/js/%40atomist%2Fautomation-seed.svg)](https://badge.fury.io/js/%40atomist%2Fautomation-seed)\n\nThis repository contains examples demonstrating use of the\n[Atomist][atomist] API for software.  You will find examples\nillustrating:\n\n-   Creating bot commands using _command handlers_\n-   Responding to DevOps events, e.g., commits pushed to a repository,\n    using _event handlers_\n\nThese examples use the [`@atomist/automation-client`][client] node\nmodule to implement a local client that connects to the Atomist API\nfor software.  See the [Atomist documentation][atomist-doc] for more\ninformation about Atomist, software delivery machines (SDM), and the\nAtomist API for software.\n\n[client]: https://github.com/atomist/automation-client-ts (@atomist/automation-client Node Module)\n[atomist-doc]: https://docs.atomist.com/ (Atomist Documentation)\n\n## Prerequisites\n\nBefore you can run this project, you will need an Atomist workspace.\nSee the [Atomist Getting Started Guide][atomist-start] for\ninstructions on how to get an Atomist workspace and connect it to your\nsource code repositories, continuous integration, chat platform, etc.\n\nYou will also need several other prerequisites to successfully run\nthis project.  See the [Atomist Developer Guide][atomist-dev] for\ninstructions on setting up your development environment.  Briefly, you\nwill need [Git][git], [Node.js][node], and the [Atomist\nCLI][atomist-cli] installed and properly configured on your system.\n\n[atomist-start]: https://docs.atomist.com/user/ (Atomist - Getting Started)\n[atomist-dev]: https://docs.atomist.com/developer/prerequisites/ (Atomist - Developer Prerequisites)\n[git]: https://git-scm.com/ (Git)\n[atomist-cli]: https://github.com/atomist/cli (Atomist Command-Line Interface)\n\n## Running\n\nOnce the prerequisites are met on your system, use `npm` to install\ndependencies and build the project.\n\n```\n$ npm install\n$ npm run build\n```\n\nYou can start up your SDM in the usual `npm` way.\n\n```\n$ npm start\n```\n\nThe [Atomist API Client documentation][atomist-client] has more\ncomplete instructions for running an SDM or other Atomist API client.\n\n[atomist-client]: https://docs.atomist.com/developer/client/ (Atomist - API Client)\n\n## Using\n\n### Invoking a command handler from Slack\n\nThis project contains the code to create and respond to a simple\n`hello world` bot command.  The code that defines the bot command and\nimplements responding to the command, i.e., the _command handler_, can\nbe found in [`HelloWorld.ts`][hello].  Once you have your local\nautomation client running (the previous step in this guide), you can\ninvoke the command handler by sending the Atomist bot the command as a\nmessage.  Be sure the Atomist bot is in the channel before sending it\nthe message.\n\n```\n/invite @atomist\n@atomist hello world\n```\n\nOnce you've submitted the command in Slack, you'll see the incoming\nand outgoing messages show up in the logs of your locally running\nautomation-client.  Ultimately, you should see the response from the\nbot in Slack.\n\n[hello]: https://github.com/atomist/automation-seed-ts/blob/master/src/commands/HelloWorld.ts (HelloWorld Command Handler)\n\nFeel free to modify the code in the `HelloWorld` command handler,\nNode.js will automatically reload the client, and see what happens!\n\n### Triggering an event handler\n\nWhile command handlers respond to commands you send the Atomist bot,\n_event handlers_ take action when different types of events occur in\nyour development and operations environment.  Some examples of events\nare commits pushed to a repo, or a CI build that fails, or an instance\nof a running service that becomes unhealthy.  Example responses to those\nevents are showing the commits in a Slack message, automatically\nrestarting the build, and triggering a PagerDuty alert, respectively.\n\nThe sample event handler in this project, [NotifyOnPush][nop-handler],\nwill notice when someone pushes new commits to a repository in the\nGitHub organization and send a notice of that push to all Slack\nchannels associated with that repository.\n\nIf you have followed the instructions above and are running these\nautomations against the atomist-playground Slack team and GitHub\norganization, go ahead and edit the [notify-on-push][nop-repo]\nrepository by adding some text to its [README][nop-readme].  Once you\nhave saved your changes, you should see that event appear in the\nconsole logs of your locally running automation client, followed by a\nlog of the actions the event handler is taking.  Once those actions\nare complete, you should see a new message in the\n[`#notify-on-push`][nop-channel] channel in the atomist-playground\nSlack team.\n\n[nop-handler]: https://github.com/atomist/automation-seed-ts/blob/master/src/events/NotifyOnPush.ts (Atomist NotifyOnPush Event Handler)\n[nop-repo]: https://github.com/atomist-playground/notify-on-push (Atomist NotifyOnPush Repository)\n[nop-readme]: https://github.com/atomist-playground/notify-on-push/edit/master/README.md (Edit NotifyOnPush README)\n[nop-channel]: https://atomist-playground.slack.com/messages/C7GNF6743/ (NotifyOnPush Slack Channel)\n\n## Support\n\nGeneral support questions should be discussed in the `#support`\nchannel in the [Atomist community Slack workspace][slack].\n\nIf you find a problem, please create an [issue][].\n\n[issue]: https://github.com/atomist/automation-seed-ts/issues\n\n## Development\n\nYou will need to install [node][] to build and test this project.\n\n[node]: https://nodejs.org/ (Node.js)\n\n### Build and Test\n\nUse the following package scripts to build, test, and perform other\ndevelopment tasks.\n\nCommand | Reason\n------- | ------\n`npm install` | install project dependencies\n`npm run build` | compile, test, lint, and generate docs\n`npm start` | start the Atomist API client\n`npm run autostart` | run the client, refreshing when files change\n`npm run lint` | run TSLint against the TypeScript\n`npm run compile` | generate types from GraphQL and compile TypeScript\n`npm test` | run tests\n`npm run autotest` | run tests every time a file changes\n`npm run clean` | remove files generated during the build\n\n### Release\n\nReleases are managed by the [Atomist SDM][atomist-sdm].  Press the\nrelease button in the Atomist dashboard or Slack.\n\n[atomist-sdm]: https://github.com/atomist/atomist-sdm (Atomist Software Delivery Machine)\n\n---\n\nCreated by [Atomist][atomist].\nNeed Help?  [Join our Slack workspace][slack].\n\n[atomist]: https://atomist.com/ (Atomist - How Teams Deliver Software)\n[slack]: https://join.atomist.com/ (Atomist Community Slack)\n","readmeFilename":"README.md","_id":"@atomist/automation-seed@0.12.1-20180822161843","_npmVersion":"6.4.0","_nodeVersion":"9.11.2","_npmUser":{"name":"atomist","email":"npm@atomist.com"},"dist":{"integrity":"sha512-qfB1+MzTjDyD4eDSnYJgGWEr6VtKvJnG3Fol7SLDd3SHinb8DfiKOobvB6w2zo/Pj57HFeNFUbClNvaRGXXPNw==","shasum":"22ab0ddb7c546da2c520db10e1dae788a5486a74","tarball":"https://registry.npmjs.org/@atomist/automation-seed/-/automation-seed-0.12.1-20180822161843.tgz","fileCount":25,"unpackedSize":165678,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbfY30CRA9TVsSAnZWagAAdMEP/Aqbi8TN8iHMf3383LUr\n/zKPO9OPFhdxECWC/e7vGCgKSxh0isgkObToOYN3mnXVWcsecynS0A8wknwr\nYPSrDH1/0J6gE3VBJbQJgTA491ca2qGLo5cDf1ThRz2WhKe8CZmaUNI5QOBi\naWq2Blj/ehAkuhicDZiQRTSVnlIrLwHLLq80hRbu7Sdb4hNfuqsen5Mke5xX\nBCdERMkjbTnMAUsiNxWYyJxNEtmcFI6IeNc0PAtzHQukl+vsMFFRONPboR2H\nzKcDKijNYoh8BoARGYwAlYm5khAuwqofuD3iIiJ9nnldG987OzXmzFkUZu8H\nyxMrK9lcZb/IK/HLuQD9BfyyoG8upw8id9sPKs2/VM8wtJSAGwFJ3guRYDHq\nMMuvvrOe0EAKExXCjgqBbbLXGWmwme9g8QgoO+pzEPnujpNyKio9aR5c7SsQ\nBTyTKQm1HtUwYjWpgmGVWNITPTuAjosHVVrhPfbD4m4c0AGdcDSNIUGLUtXQ\nUb2/B8lLymZzlsWSo4BmCXkdRZeAa1SNg5Gl4kUjr8p7A3o2PBDbGQfjmMnP\nRAoM5Mc14yL5uRRGW4bcL8L03fMJ+Gu073Vz+lP2CArx+Hra7YJM2cCK3ixf\nAjWOAN3OjFSHpytWOXGNSfgizwoaoD1NrqQYxb59x3B6e3hrew0i96R8s+b9\n/JQ1\r\n=GXjo\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDkHhsGX3qGWLGXu/fDN9KdLLnvhLS5w7p7EZEIQzogqgIhAKELqPNtraYv+HTZGcegqmewyhrh/Qk6Luo6sWKAC6/n"}]},"maintainers":[{"name":"atomist","email":"npm@atomist.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/automation-seed_0.12.1-20180822161843_1534954995556_0.30626618193599353"},"_hasShrinkwrap":false},"0.12.1-master.20180829154543":{"name":"@atomist/automation-seed","version":"0.12.1-master.20180829154543","description":"Atomist automation client seed project","author":{"name":"Atomist","email":"support@atomist.com","url":"https://atomist.com/"},"license":"Apache-2.0","homepage":"https://github.com/atomist/automation-seed-ts#readme","repository":{"type":"git","url":"git+https://github.com/atomist/automation-seed-ts.git"},"bugs":{"url":"https://github.com/atomist/automation-seed-ts/issues"},"keywords":["atomist","automation","seed"],"main":"./index.js","types":"./index.d.ts","dependencies":{"@atomist/automation-client":"^0.21.2","@types/app-root-path":"^1.2.4","app-root-path":"^2.0.1"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.5.7","@types/power-assert":"^1.5.0","espower-typescript":"^9.0.0","mocha":"^5.2.0","nodemon":"^1.18.3","npm-run-all":"^4.1.3","power-assert":"^1.6.0","rimraf":"^2.6.2","supervisor":"^0.12.0","ts-node":"^7.0.0","tslint":"^5.11.0","typedoc":"^0.11.1","typescript":"^2.9.2"},"directories":{"test":"test"},"scripts":{"autostart":"nodemon --watch index.ts --watch lib --ext ts --delay 4 --exec ts-node -- node_modules/@atomist/automation-client/bin/start.js","autotest":"supervisor --watch index.ts,lib,test --extensions ts --no-restart-on exit --quiet --exec npm -- test","build":"run-s compile test lint doc","clean":"run-p clean:compile clean:doc clean:run","clean:compile":"rimraf git-info.json \"index.{d.ts,js{,.map}}\" \"{lib,test}/**/*.{d.ts,js{,.map}}\" lib/typings/types.ts","clean:dist":"run-s clean clean:npm","clean:doc":"rimraf doc","clean:npm":"rimraf node_modules","clean:run":"rimraf *-v8.log profile.txt log","compile":"run-s git:info gql:gen compile:ts","compile:ts":"tsc --project .","doc":"typedoc --mode modules --excludeExternals --ignoreCompilerErrors --exclude \"**/*.d.ts\" --out doc index.ts lib","git:info":"atm-git-info","gql:gen":"atm-gql-gen","lint":"tslint --format verbose --project . --exclude \"node_modules/**\" --exclude \"**/*.d.ts\" \"**/*.ts\"","lint:fix":"npm run lint -- --fix","start":"atm-start","test":"mocha --require espower-typescript/guess \"test/**/*.test.ts\"","test:one":"mocha --require espower-typescript/guess \"test/**/${TEST:-*.test.ts}\"","typedoc":"npm run doc"},"engines":{"node":">=8.0.0","npm":">=5.0.0"},"gitHead":"6ce88a5be618f4c436430ba3ad6b552347a83963","readme":"# @atomist/automation-seed\n\n[![npm version](https://img.shields.io/npm/v/@atomist/automation-seed.svg)](https://www.npmjs.com/package/@atomist/automation-seed)\n\nThis repository contains examples demonstrating use of the\n[Atomist][atomist] API for software.  You will find examples\nillustrating:\n\n-   Creating bot commands using _command handlers_\n-   Responding to DevOps events, e.g., commits pushed to a repository,\n    using _event handlers_\n\nThese examples use the [`@atomist/automation-client`][client] node\nmodule to implement a local client that connects to the Atomist API\nfor software.  See the [Atomist documentation][atomist-doc] for more\ninformation about Atomist, software delivery machines (SDM), and the\nAtomist API for software.\n\n[client]: https://github.com/atomist/automation-client-ts (@atomist/automation-client Node Module)\n[atomist-doc]: https://docs.atomist.com/ (Atomist Documentation)\n\n## Prerequisites\n\nBefore you can run this project, you will need an Atomist workspace.\nSee the [Atomist Getting Started Guide][atomist-start] for\ninstructions on how to get an Atomist workspace and connect it to your\nsource code repositories, continuous integration, chat platform, etc.\n\nYou will also need several other prerequisites to successfully run\nthis project.  See the [Atomist Developer Guide][atomist-dev] for\ninstructions on setting up your development environment.  Briefly, you\nwill need [Git][git], [Node.js][node], and the [Atomist\nCLI][atomist-cli] installed and properly configured on your system.\n\n[atomist-start]: https://docs.atomist.com/user/ (Atomist - Getting Started)\n[atomist-dev]: https://docs.atomist.com/developer/prerequisites/ (Atomist - Developer Prerequisites)\n[git]: https://git-scm.com/ (Git)\n[atomist-cli]: https://github.com/atomist/cli (Atomist Command-Line Interface)\n\n## Running\n\nOnce the prerequisites are met on your system, use `npm` to install\ndependencies and build the project.\n\n```\n$ npm install\n$ npm run build\n```\n\nYou can start up your SDM in the usual `npm` way.\n\n```\n$ npm start\n```\n\nThe [Atomist API Client documentation][atomist-client] has more\ncomplete instructions for running an SDM or other Atomist API client.\n\n[atomist-client]: https://docs.atomist.com/developer/client/ (Atomist - API Client)\n\n## Using\n\n### Invoking a command handler from Slack\n\nThis project contains the code to create and respond to a simple\n`hello world` bot command.  The code that defines the bot command and\nimplements responding to the command, i.e., the _command handler_, can\nbe found in [`HelloWorld.ts`][hello].  Once you have your local\nautomation client running (the previous step in this guide), you can\ninvoke the command handler by sending the Atomist bot the command as a\nmessage.  Be sure the Atomist bot is in the channel before sending it\nthe message.\n\n```\n/invite @atomist\n@atomist hello world\n```\n\nOnce you've submitted the command in Slack, you'll see the incoming\nand outgoing messages show up in the logs of your locally running\nautomation-client.  Ultimately, you should see the response from the\nbot in Slack.\n\n[hello]: https://github.com/atomist/automation-seed-ts/blob/master/src/commands/HelloWorld.ts (HelloWorld Command Handler)\n\nFeel free to modify the code in the `HelloWorld` command handler,\nNode.js will automatically reload the client, and see what happens!\n\n### Triggering an event handler\n\nWhile command handlers respond to commands you send the Atomist bot,\n_event handlers_ take action when different types of events occur in\nyour development and operations environment.  Some examples of events\nare commits pushed to a repo, or a CI build that fails, or an instance\nof a running service that becomes unhealthy.  Example responses to those\nevents are showing the commits in a Slack message, automatically\nrestarting the build, and triggering a PagerDuty alert, respectively.\n\nThe sample event handler in this project, [NotifyOnPush][nop-handler],\nwill notice when someone pushes new commits to a repository in the\nGitHub organization and send a notice of that push to all Slack\nchannels associated with that repository.\n\nIf you have followed the instructions above and are running these\nautomations against the atomist-playground Slack team and GitHub\norganization, go ahead and edit the [notify-on-push][nop-repo]\nrepository by adding some text to its [README][nop-readme].  Once you\nhave saved your changes, you should see that event appear in the\nconsole logs of your locally running automation client, followed by a\nlog of the actions the event handler is taking.  Once those actions\nare complete, you should see a new message in the\n[`#notify-on-push`][nop-channel] channel in the atomist-playground\nSlack team.\n\n[nop-handler]: https://github.com/atomist/automation-seed-ts/blob/master/src/events/NotifyOnPush.ts (Atomist NotifyOnPush Event Handler)\n[nop-repo]: https://github.com/atomist-playground/notify-on-push (Atomist NotifyOnPush Repository)\n[nop-readme]: https://github.com/atomist-playground/notify-on-push/edit/master/README.md (Edit NotifyOnPush README)\n[nop-channel]: https://atomist-playground.slack.com/messages/C7GNF6743/ (NotifyOnPush Slack Channel)\n\n## Support\n\nGeneral support questions should be discussed in the `#support`\nchannel in the [Atomist community Slack workspace][slack].\n\nIf you find a problem, please create an [issue][].\n\n[issue]: https://github.com/atomist/automation-seed-ts/issues\n\n## Development\n\nYou will need to install [Node.js][node] to build and test this\nproject.\n\n[node]: https://nodejs.org/ (Node.js)\n\n### Build and test\n\nInstall dependencies.\n\n```\n$ npm install\n```\n\nUse the `build` package script to compile, test, lint, and build the\ndocumentation.\n\n```\n$ npm run build\n```\n\n### Release\n\nReleases are handled via the [Atomist SDM][atomist-sdm].  Just press\nthe 'Approve' button in the Atomist dashboard or Slack.\n\n[atomist-sdm]: https://github.com/atomist/atomist-sdm (Atomist Software Delivery Machine)\n\n---\n\nCreated by [Atomist][atomist].\nNeed Help?  [Join our Slack workspace][slack].\n\n[atomist]: https://atomist.com/ (Atomist - How Teams Deliver Software)\n[slack]: https://join.atomist.com/ (Atomist Community Slack)\n","readmeFilename":"README.md","_id":"@atomist/automation-seed@0.12.1-master.20180829154543","_npmVersion":"6.4.0","_nodeVersion":"9.11.2","_npmUser":{"name":"atomist","email":"npm@atomist.com"},"dist":{"integrity":"sha512-xFKilEhkxCRA0FUpYSTdcMmH0nzbYqsAHiUixvk32qbzNm7Y+GKbQCKlRJ4l8MdoZb5UboyzWavRDC+7Pds05g==","shasum":"d00c1e7cd62dbce5ed1cb7767606d4d911c229f8","tarball":"https://registry.npmjs.org/@atomist/automation-seed/-/automation-seed-0.12.1-master.20180829154543.tgz","fileCount":25,"unpackedSize":165280,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbhsBkCRA9TVsSAnZWagAAr0IP/26w0bU5f8K9P/qVdEqY\nk+LyEKi4M10lAdXeUWUmdt76zpbUKAIL0RcXPsGC9uK3VcG90KxpQBkNVm8D\npHfIrAfNOHIRXxy0Ye9fAxtSwuSJ12jJvOj8RJRrgrDFOhLtr5yTLzeniMHp\n8Uuca0mhfFCFiW/p4l6LpKilwGxxO46MP7liwOIT/IBiHo/F8w8nRURXxGby\nkl1dY9ptZFXpQZyKeTVCdApTFSUy2Yce+f818XR9oROtiq94ZlnOr4T+U7by\n7R8kVYQrRoz1P9neRqDQLhCwPcSTxgDRNcSgnZZt5AKQZgbejLMXQK33ABHm\nombmztt/PXsiUjGNlhGJRodTKre53B3KVzHSt/sXNFTeSHkZ40V8BEsOvYaF\nGVdKVdgbFFihGZkWe1ricT8PRe9D35shM2CS+1Kwb2L0dOUIaziwcvJD6fHU\n/kZy+8AcaFgCL9xvY02JNuU3HABFLOoRs+dg0eapSHnMlaToS9hGc1ROoesf\nekgtf/Bchz9YentIEtNpuAb2lHKwPqP66KfjoSinQPIZE39Ktup7DqDUz51E\nk8Rdqi0vjhdxTaGMV1WMr2OIzck29CYLw6uWj0IEuCLCPeGDOH58YxvnkR+I\nlvykJwMmxNwC4BEwEqLG2+ifj+b6T97BdTV//ttRMKMRqFIB1YTwoTvETc5D\n74X5\r\n=9WLW\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGRrXSqNhrI/DEqLrI/kNCMGkAY1iQ67A7/5LVp777t1AiEA3HPSG2KeoMjXEOpFXYK8KB+Hfe0S7ez/DvOXM2UBdNI="}]},"maintainers":[{"name":"atomist","email":"npm@atomist.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/automation-seed_0.12.1-master.20180829154543_1535557732019_0.9895185983889832"},"_hasShrinkwrap":false},"0.12.1-de-deprecate.20180901235629":{"name":"@atomist/automation-seed","version":"0.12.1-de-deprecate.20180901235629","description":"Atomist automation client seed project","author":{"name":"Atomist","email":"support@atomist.com","url":"https://atomist.com/"},"license":"Apache-2.0","homepage":"https://github.com/atomist/automation-seed-ts#readme","repository":{"type":"git","url":"git+https://github.com/atomist/automation-seed-ts.git"},"bugs":{"url":"https://github.com/atomist/automation-seed-ts/issues"},"keywords":["atomist","automation","seed"],"main":"./index.js","types":"./index.d.ts","dependencies":{"@atomist/automation-client":"^1.0.0-master.20180901185845","@types/app-root-path":"^1.2.4","app-root-path":"^2.0.1"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.5.7","@types/power-assert":"^1.5.0","espower-typescript":"^9.0.0","mocha":"^5.2.0","nodemon":"^1.18.3","npm-run-all":"^4.1.3","power-assert":"^1.6.0","rimraf":"^2.6.2","supervisor":"^0.12.0","ts-node":"^7.0.0","tslint":"^5.11.0","typedoc":"^0.11.1","typescript":"^2.9.2"},"directories":{"test":"test"},"scripts":{"autostart":"nodemon --watch index.ts --watch lib --ext ts --delay 4 --exec ts-node -- node_modules/@atomist/automation-client/bin/start.js","autotest":"supervisor --watch index.ts,lib,test --extensions ts --no-restart-on exit --quiet --exec npm -- test","build":"run-s compile test lint doc","clean":"run-p clean:compile clean:doc clean:run","clean:compile":"rimraf git-info.json \"index.{d.ts,js{,.map}}\" \"{lib,test}/**/*.{d.ts,js{,.map}}\" lib/typings/types.ts","clean:dist":"run-s clean clean:npm","clean:doc":"rimraf doc","clean:npm":"rimraf node_modules","clean:run":"rimraf *-v8.log profile.txt log","compile":"run-s git:info gql:gen compile:ts","compile:ts":"tsc --project .","doc":"typedoc --mode modules --excludeExternals --ignoreCompilerErrors --exclude \"**/*.d.ts\" --out doc index.ts lib","git:info":"atm-git-info","gql:gen":"atm-gql-gen","lint":"tslint --format verbose --project . --exclude \"node_modules/**\" --exclude \"**/*.d.ts\" \"**/*.ts\"","lint:fix":"npm run lint -- --fix","start":"atm-start","test":"mocha --require espower-typescript/guess \"test/**/*.test.ts\"","test:one":"mocha --require espower-typescript/guess \"test/**/${TEST:-*.test.ts}\"","typedoc":"npm run doc"},"engines":{"node":">=8.0.0","npm":">=5.0.0"},"gitHead":"95b301a6974f489d618c6d5e870509d8e8027199","readme":"# @atomist/automation-seed\n\n[![npm version](https://img.shields.io/npm/v/@atomist/automation-seed.svg)](https://www.npmjs.com/package/@atomist/automation-seed)\n\nThis repository contains examples demonstrating use of the\n[Atomist][atomist] API for software.  You will find examples\nillustrating:\n\n-   Creating bot commands using _command handlers_\n-   Responding to DevOps events, e.g., commits pushed to a repository,\n    using _event handlers_\n\nThese examples use the [`@atomist/automation-client`][client] node\nmodule to implement a local client that connects to the Atomist API\nfor software.  See the [Atomist documentation][atomist-doc] for more\ninformation about Atomist, software delivery machines (SDM), and the\nAtomist API for software.\n\n[client]: https://github.com/atomist/automation-client-ts (@atomist/automation-client Node Module)\n[atomist-doc]: https://docs.atomist.com/ (Atomist Documentation)\n\n## Prerequisites\n\nBefore you can run this project, you will need an Atomist workspace.\nSee the [Atomist Getting Started Guide][atomist-start] for\ninstructions on how to get an Atomist workspace and connect it to your\nsource code repositories, continuous integration, chat platform, etc.\n\nYou will also need several other prerequisites to successfully run\nthis project.  See the [Atomist Developer Guide][atomist-dev] for\ninstructions on setting up your development environment.  Briefly, you\nwill need [Git][git], [Node.js][node], and the [Atomist\nCLI][atomist-cli] installed and properly configured on your system.\n\n[atomist-start]: https://docs.atomist.com/user/ (Atomist - Getting Started)\n[atomist-dev]: https://docs.atomist.com/developer/prerequisites/ (Atomist - Developer Prerequisites)\n[git]: https://git-scm.com/ (Git)\n[atomist-cli]: https://github.com/atomist/cli (Atomist Command-Line Interface)\n\n## Running\n\nOnce the prerequisites are met on your system, use `npm` to install\ndependencies and build the project.\n\n```\n$ npm install\n$ npm run build\n```\n\nYou can start up your SDM in the usual `npm` way.\n\n```\n$ npm start\n```\n\nThe [Atomist API Client documentation][atomist-client] has more\ncomplete instructions for running an SDM or other Atomist API client.\n\n[atomist-client]: https://docs.atomist.com/developer/client/ (Atomist - API Client)\n\n## Using\n\n### Invoking a command handler from Slack\n\nThis project contains the code to create and respond to a simple\n`hello world` bot command.  The code that defines the bot command and\nimplements responding to the command, i.e., the _command handler_, can\nbe found in [`HelloWorld.ts`][hello].  Once you have your local\nautomation client running (the previous step in this guide), you can\ninvoke the command handler by sending the Atomist bot the command as a\nmessage.  Be sure the Atomist bot is in the channel before sending it\nthe message.\n\n```\n/invite @atomist\n@atomist hello world\n```\n\nOnce you've submitted the command in Slack, you'll see the incoming\nand outgoing messages show up in the logs of your locally running\nautomation-client.  Ultimately, you should see the response from the\nbot in Slack.\n\n[hello]: https://github.com/atomist/automation-seed-ts/blob/master/src/commands/HelloWorld.ts (HelloWorld Command Handler)\n\nFeel free to modify the code in the `HelloWorld` command handler,\nNode.js will automatically reload the client, and see what happens!\n\n### Triggering an event handler\n\nWhile command handlers respond to commands you send the Atomist bot,\n_event handlers_ take action when different types of events occur in\nyour development and operations environment.  Some examples of events\nare commits pushed to a repo, or a CI build that fails, or an instance\nof a running service that becomes unhealthy.  Example responses to those\nevents are showing the commits in a Slack message, automatically\nrestarting the build, and triggering a PagerDuty alert, respectively.\n\nThe sample event handler in this project, [NotifyOnPush][nop-handler],\nwill notice when someone pushes new commits to a repository in the\nGitHub organization and send a notice of that push to all Slack\nchannels associated with that repository.\n\nIf you have followed the instructions above and are running these\nautomations against the atomist-playground Slack team and GitHub\norganization, go ahead and edit the [notify-on-push][nop-repo]\nrepository by adding some text to its [README][nop-readme].  Once you\nhave saved your changes, you should see that event appear in the\nconsole logs of your locally running automation client, followed by a\nlog of the actions the event handler is taking.  Once those actions\nare complete, you should see a new message in the\n[`#notify-on-push`][nop-channel] channel in the atomist-playground\nSlack team.\n\n[nop-handler]: https://github.com/atomist/automation-seed-ts/blob/master/src/events/NotifyOnPush.ts (Atomist NotifyOnPush Event Handler)\n[nop-repo]: https://github.com/atomist-playground/notify-on-push (Atomist NotifyOnPush Repository)\n[nop-readme]: https://github.com/atomist-playground/notify-on-push/edit/master/README.md (Edit NotifyOnPush README)\n[nop-channel]: https://atomist-playground.slack.com/messages/C7GNF6743/ (NotifyOnPush Slack Channel)\n\n## Support\n\nGeneral support questions should be discussed in the `#support`\nchannel in the [Atomist community Slack workspace][slack].\n\nIf you find a problem, please create an [issue][].\n\n[issue]: https://github.com/atomist/automation-seed-ts/issues\n\n## Development\n\nYou will need to install [Node.js][node] to build and test this\nproject.\n\n[node]: https://nodejs.org/ (Node.js)\n\n### Build and test\n\nInstall dependencies.\n\n```\n$ npm install\n```\n\nUse the `build` package script to compile, test, lint, and build the\ndocumentation.\n\n```\n$ npm run build\n```\n\n### Release\n\nReleases are handled via the [Atomist SDM][atomist-sdm].  Just press\nthe 'Approve' button in the Atomist dashboard or Slack.\n\n[atomist-sdm]: https://github.com/atomist/atomist-sdm (Atomist Software Delivery Machine)\n\n---\n\nCreated by [Atomist][atomist].\nNeed Help?  [Join our Slack workspace][slack].\n\n[atomist]: https://atomist.com/ (Atomist - How Teams Deliver Software)\n[slack]: https://join.atomist.com/ (Atomist Community Slack)\n","readmeFilename":"README.md","_id":"@atomist/automation-seed@0.12.1-de-deprecate.20180901235629","_npmVersion":"6.4.0","_nodeVersion":"9.11.2","_npmUser":{"name":"atomist","email":"npm@atomist.com"},"dist":{"integrity":"sha512-JLweZA2LKSgYnaJamVCAhmcq9CZTjtE5PoyiTTpSoauso6o1ANQ4gVWy5OikFE4JT1swquYtaZpSWAVRZW4jEw==","shasum":"d2e4d7fde1a4a8ca80611befedb225757c6216f4","tarball":"https://registry.npmjs.org/@atomist/automation-seed/-/automation-seed-0.12.1-de-deprecate.20180901235629.tgz","fileCount":25,"unpackedSize":167557,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbiyfECRA9TVsSAnZWagAA/g0P/RlYV8LEFX5nVbxt94y0\nemRuhV7LCuQdKf1rWEn4KNsBN1C5f75JOlFLLuwso519etssuNgW6zABIGRS\nig9VPcAqfhvsp+Xqa8E43IfnQZol7A5llSbnbq0S3o7sYrM5UmqFrVwLkBl+\n7HuqrbG1H4NdGcSkB65NjTPMaRGjG2hEua8DN8b04Xz7FS5kAOZMtiAy6o6s\n3jORSdugDDRduna0aNdLHHc6Hx8ZDWcXNn6w3eV9qBN1oHN1Zh5N7TzlQaON\nrV1v0yJNHsRQpAZnS/OWPtibpCtRN3s2eKgcSf4UpsF4Na0lFIhyLTagFw7t\n8wO4k+VXr4zV+SGekRp78rwl+vUVq9qVwp5Ptrguxli6VAn/86x6KBh7D7na\ntzD6RSqb/68mMulqyQcwydl7rTiAQ5PT0NyRDMl8F2QA402GkVNSXyryXglG\nOQYWRskEiiz0lJZrAzxRg2lNuABYGhcxpyjPwwiW2Z/S3dUtiVuYsu7GMl+8\ncq74WVAUAzLh7N6oHtoFR5ozF6tiBOkDns4W/fUQ8mtlVBQL7xAIUtcnQ5XE\n+D0V5XEISMe9QyD2lUcsJf/BlBDXjKwc/CSArcYJB7AW/j90l+SwhF5gKOHf\neneOVtHcoOYxg/+gd58/ESyMUOxiOMxrLvnFCBr5A6ABmWOV6mT2x/XNv7ti\nizMJ\r\n=9ihq\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC489l6Hr5Lhi9fv47/+TZY9Qd0vQrGVB3hF8fly+wBSQIhAPENIh/nQMaRNeM5rXepA8DGcF0ZfCZj+BjNyKgcL/gA"}]},"maintainers":[{"name":"atomist","email":"npm@atomist.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/automation-seed_0.12.1-de-deprecate.20180901235629_1535846339856_0.5079214195736941"},"_hasShrinkwrap":false},"0.12.1-master.20180902181645":{"name":"@atomist/automation-seed","version":"0.12.1-master.20180902181645","description":"Atomist automation client seed project","author":{"name":"Atomist","email":"support@atomist.com","url":"https://atomist.com/"},"license":"Apache-2.0","homepage":"https://github.com/atomist/automation-seed-ts#readme","repository":{"type":"git","url":"git+https://github.com/atomist/automation-seed-ts.git"},"bugs":{"url":"https://github.com/atomist/automation-seed-ts/issues"},"keywords":["atomist","automation","seed"],"main":"./index.js","types":"./index.d.ts","dependencies":{"@atomist/automation-client":"^1.0.0-master.20180901185845","@types/app-root-path":"^1.2.4","app-root-path":"^2.0.1"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.5.7","@types/power-assert":"^1.5.0","espower-typescript":"^9.0.0","mocha":"^5.2.0","nodemon":"^1.18.3","npm-run-all":"^4.1.3","power-assert":"^1.6.0","rimraf":"^2.6.2","supervisor":"^0.12.0","ts-node":"^7.0.0","tslint":"^5.11.0","typedoc":"^0.11.1","typescript":"^2.9.2"},"directories":{"test":"test"},"scripts":{"autostart":"nodemon --watch index.ts --watch lib --ext ts --delay 4 --exec ts-node -- node_modules/@atomist/automation-client/bin/start.js","autotest":"supervisor --watch index.ts,lib,test --extensions ts --no-restart-on exit --quiet --exec npm -- test","build":"run-s compile test lint doc","clean":"run-p clean:compile clean:doc clean:run","clean:compile":"rimraf git-info.json \"index.{d.ts,js{,.map}}\" \"{lib,test}/**/*.{d.ts,js{,.map}}\" lib/typings/types.ts","clean:dist":"run-s clean clean:npm","clean:doc":"rimraf doc","clean:npm":"rimraf node_modules","clean:run":"rimraf *-v8.log profile.txt log","compile":"run-s git:info gql:gen compile:ts","compile:ts":"tsc --project .","doc":"typedoc --mode modules --excludeExternals --ignoreCompilerErrors --exclude \"**/*.d.ts\" --out doc index.ts lib","git:info":"atm-git-info","gql:gen":"atm-gql-gen","lint":"tslint --format verbose --project . --exclude \"node_modules/**\" --exclude \"**/*.d.ts\" \"**/*.ts\"","lint:fix":"npm run lint -- --fix","start":"atm-start","test":"mocha --require espower-typescript/guess \"test/**/*.test.ts\"","test:one":"mocha --require espower-typescript/guess \"test/**/${TEST:-*.test.ts}\"","typedoc":"npm run doc"},"engines":{"node":">=8.0.0","npm":">=5.0.0"},"gitHead":"a02d28aac4844cab62b621204a883594361969ca","readme":"# @atomist/automation-seed\n\n[![npm version](https://img.shields.io/npm/v/@atomist/automation-seed.svg)](https://www.npmjs.com/package/@atomist/automation-seed)\n\nThis repository contains examples demonstrating use of the\n[Atomist][atomist] API for software.  You will find examples\nillustrating:\n\n-   Creating bot commands using _command handlers_\n-   Responding to DevOps events, e.g., commits pushed to a repository,\n    using _event handlers_\n\nThese examples use the [`@atomist/automation-client`][client] node\nmodule to implement a local client that connects to the Atomist API\nfor software.  See the [Atomist documentation][atomist-doc] for more\ninformation about Atomist, software delivery machines (SDM), and the\nAtomist API for software.\n\n[client]: https://github.com/atomist/automation-client-ts (@atomist/automation-client Node Module)\n[atomist-doc]: https://docs.atomist.com/ (Atomist Documentation)\n\n## Prerequisites\n\nBefore you can run this project, you will need an Atomist workspace.\nSee the [Atomist Getting Started Guide][atomist-start] for\ninstructions on how to get an Atomist workspace and connect it to your\nsource code repositories, continuous integration, chat platform, etc.\n\nYou will also need several other prerequisites to successfully run\nthis project.  See the [Atomist Developer Guide][atomist-dev] for\ninstructions on setting up your development environment.  Briefly, you\nwill need [Git][git], [Node.js][node], and the [Atomist\nCLI][atomist-cli] installed and properly configured on your system.\n\n[atomist-start]: https://docs.atomist.com/user/ (Atomist - Getting Started)\n[atomist-dev]: https://docs.atomist.com/developer/prerequisites/ (Atomist - Developer Prerequisites)\n[git]: https://git-scm.com/ (Git)\n[atomist-cli]: https://github.com/atomist/cli (Atomist Command-Line Interface)\n\n## Running\n\nOnce the prerequisites are met on your system, use `npm` to install\ndependencies and build the project.\n\n```\n$ npm install\n$ npm run build\n```\n\nYou can start up your SDM in the usual `npm` way.\n\n```\n$ npm start\n```\n\nThe [Atomist API Client documentation][atomist-client] has more\ncomplete instructions for running an SDM or other Atomist API client.\n\n[atomist-client]: https://docs.atomist.com/developer/client/ (Atomist - API Client)\n\n## Using\n\n### Invoking a command handler from Slack\n\nThis project contains the code to create and respond to a simple\n`hello world` bot command.  The code that defines the bot command and\nimplements responding to the command, i.e., the _command handler_, can\nbe found in [`HelloWorld.ts`][hello].  Once you have your local\nautomation client running (the previous step in this guide), you can\ninvoke the command handler by sending the Atomist bot the command as a\nmessage.  Be sure the Atomist bot is in the channel before sending it\nthe message.\n\n```\n/invite @atomist\n@atomist hello world\n```\n\nOnce you've submitted the command in Slack, you'll see the incoming\nand outgoing messages show up in the logs of your locally running\nautomation-client.  Ultimately, you should see the response from the\nbot in Slack.\n\n[hello]: https://github.com/atomist/automation-seed-ts/blob/master/src/commands/HelloWorld.ts (HelloWorld Command Handler)\n\nFeel free to modify the code in the `HelloWorld` command handler,\nNode.js will automatically reload the client, and see what happens!\n\n### Triggering an event handler\n\nWhile command handlers respond to commands you send the Atomist bot,\n_event handlers_ take action when different types of events occur in\nyour development and operations environment.  Some examples of events\nare commits pushed to a repo, or a CI build that fails, or an instance\nof a running service that becomes unhealthy.  Example responses to those\nevents are showing the commits in a Slack message, automatically\nrestarting the build, and triggering a PagerDuty alert, respectively.\n\nThe sample event handler in this project, [NotifyOnPush][nop-handler],\nwill notice when someone pushes new commits to a repository in the\nGitHub organization and send a notice of that push to all Slack\nchannels associated with that repository.\n\nIf you have followed the instructions above and are running these\nautomations against the atomist-playground Slack team and GitHub\norganization, go ahead and edit the [notify-on-push][nop-repo]\nrepository by adding some text to its [README][nop-readme].  Once you\nhave saved your changes, you should see that event appear in the\nconsole logs of your locally running automation client, followed by a\nlog of the actions the event handler is taking.  Once those actions\nare complete, you should see a new message in the\n[`#notify-on-push`][nop-channel] channel in the atomist-playground\nSlack team.\n\n[nop-handler]: https://github.com/atomist/automation-seed-ts/blob/master/src/events/NotifyOnPush.ts (Atomist NotifyOnPush Event Handler)\n[nop-repo]: https://github.com/atomist-playground/notify-on-push (Atomist NotifyOnPush Repository)\n[nop-readme]: https://github.com/atomist-playground/notify-on-push/edit/master/README.md (Edit NotifyOnPush README)\n[nop-channel]: https://atomist-playground.slack.com/messages/C7GNF6743/ (NotifyOnPush Slack Channel)\n\n## Support\n\nGeneral support questions should be discussed in the `#support`\nchannel in the [Atomist community Slack workspace][slack].\n\nIf you find a problem, please create an [issue][].\n\n[issue]: https://github.com/atomist/automation-seed-ts/issues\n\n## Development\n\nYou will need to install [Node.js][node] to build and test this\nproject.\n\n[node]: https://nodejs.org/ (Node.js)\n\n### Build and test\n\nInstall dependencies.\n\n```\n$ npm install\n```\n\nUse the `build` package script to compile, test, lint, and build the\ndocumentation.\n\n```\n$ npm run build\n```\n\n### Release\n\nReleases are handled via the [Atomist SDM][atomist-sdm].  Just press\nthe 'Approve' button in the Atomist dashboard or Slack.\n\n[atomist-sdm]: https://github.com/atomist/atomist-sdm (Atomist Software Delivery Machine)\n\n---\n\nCreated by [Atomist][atomist].\nNeed Help?  [Join our Slack workspace][slack].\n\n[atomist]: https://atomist.com/ (Atomist - How Teams Deliver Software)\n[slack]: https://join.atomist.com/ (Atomist Community Slack)\n","readmeFilename":"README.md","_id":"@atomist/automation-seed@0.12.1-master.20180902181645","_npmVersion":"6.4.0","_nodeVersion":"9.11.2","_npmUser":{"name":"atomist","email":"npm@atomist.com"},"dist":{"integrity":"sha512-QOhHKL3KkPUH8GcV8ZaCeIKIcwp4xmncORZUPv+Bm0bfkkOHiR5mhkOgJILgBSORnelddz6L8TPR8CWc97FDAA==","shasum":"9a688e8840ff2beeac6674b0ac6007f4452fbedf","tarball":"https://registry.npmjs.org/@atomist/automation-seed/-/automation-seed-0.12.1-master.20180902181645.tgz","fileCount":25,"unpackedSize":167755,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbjCm9CRA9TVsSAnZWagAAO+EP/2ezCStIJU8VhnY6wyYh\nxHLXXYN+Dh0A3LS5L4bQ/ZpWL+Ucu19BtM+kYKB7tU5CoobsK/ScBhYEEOnb\nAY0IcvTVvve/u0iUjCUZFdJQ8c4ML+2akTYiOT82iFI82od2N5HmMWsH7tvG\nbZV6RLFLsfiiCneVOJSx8WknkwNtyPVMnIWuzQ263vxX/cg1Y8pOTZIXGmGL\nep6gGezX/UT42IsgP8M8uEhsP/de7nxkYTakPL/hFbrxM7cKZI2WwjL/aqaM\naKNjdGgaxTzLv+uHpX2WlkCdsXbVlgoC+P21BKAAYa62EoVBWe//w4poqAUd\njAcVjnXd1GA9jibHhAqFXgOhHgKeQ1UfEtBEtaVQTlxXI+VYHCGmmp41bk9t\nVHbvp5yFEflkVCOVL3ldcUCR5MqGL+NHm1rY9Bxnu8Vt9bukIpQRW0sGHqhp\n6OfQf0Zwmi6y7u4mz87ydliI/Pbt4HI+NPUVJBqhy/GH/TO2N70xuN687Hs/\nQvJRqyIkrIc80tSj2WjRUUp6KuO6QHlPsGEF8Ves56A+h3/VF3PMywFexuyE\nEBResfAf6XPnRH5ZRSI82sNPi6prFnGKL3zdcquqSpj5x38rckfSuvpHDW/h\nu01BXo0AsrW3Pm0NuzDjA8YhDZXsbxdz7HfS8OC87LOf8aZRqw9yei2rSKUb\nqiAn\r\n=iVQf\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIByARo+oxbTwVJlvcKbP3RF6NdR+jJGBVJ8OE+yNhYNbAiEA8vZrBOhMMfgSUaEnHfJKbgN7yLgCndq9OXfLYdn2QNM="}]},"maintainers":[{"name":"atomist","email":"npm@atomist.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/automation-seed_0.12.1-master.20180902181645_1535912380626_0.4633691230447987"},"_hasShrinkwrap":false},"0.12.1-master.20180903023406":{"name":"@atomist/automation-seed","version":"0.12.1-master.20180903023406","description":"Atomist automation client seed project","author":{"name":"Atomist","email":"support@atomist.com","url":"https://atomist.com/"},"license":"Apache-2.0","homepage":"https://github.com/atomist/automation-seed-ts#readme","repository":{"type":"git","url":"git+https://github.com/atomist/automation-seed-ts.git"},"bugs":{"url":"https://github.com/atomist/automation-seed-ts/issues"},"keywords":["atomist","automation","seed"],"main":"./index.js","types":"./index.d.ts","dependencies":{"@atomist/automation-client":"^1.0.0-master.20180901185845"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.5.7","@types/power-assert":"^1.5.0","espower-typescript":"^9.0.0","mocha":"^5.2.0","nodemon":"^1.18.3","npm-run-all":"^4.1.3","nyc":"^13.0.1","power-assert":"^1.6.0","rimraf":"^2.6.2","source-map-support":"^0.5.9","supervisor":"^0.12.0","ts-node":"^7.0.0","tslint":"^5.11.0","typedoc":"^0.11.1","typescript":"^2.9.2"},"directories":{"test":"test"},"scripts":{"autostart":"nodemon --watch index.ts --watch lib --ext ts --delay 4 --exec ts-node -- node_modules/@atomist/automation-client/bin/start.js","autotest":"supervisor --watch index.ts,lib,test --extensions ts --no-restart-on exit --quiet --exec npm -- test","build":"run-s compile test lint doc","clean":"run-p clean:compile clean:test clean:doc clean:run","clean:compile":"rimraf git-info.json \"index.{d.ts,js{,.map}}\" \"{lib,test}/**/*.{d.ts,js{,.map}}\" lib/typings/types.ts","clean:dist":"run-s clean clean:npm","clean:doc":"rimraf doc","clean:npm":"rimraf node_modules","clean:run":"rimraf *-v8.log profile.txt log","clean:test":"rimraf .nyc_output coverage","compile":"run-s git:info gql:gen compile:ts","compile:ts":"tsc --project .","doc":"typedoc --mode modules --excludeExternals --ignoreCompilerErrors --exclude \"**/*.d.ts\" --out doc index.ts lib","git:info":"atm-git-info","gql:gen":"atm-gql-gen","lint":"tslint --format verbose --project . --exclude \"node_modules/**\" --exclude \"**/*.d.ts\" \"**/*.ts\"","lint:fix":"npm run lint -- --fix","start":"atm-start","test":"nyc mocha --require espower-typescript/guess --require source-map-support/register \"test/**/*.test.ts\"","test:one":"mocha --require espower-typescript/guess \"test/**/${TEST:-*.test.ts}\"","typedoc":"npm run doc"},"engines":{"node":">=8.0.0","npm":">=5.0.0"},"nyc":{"include":["lib/**/*.*"],"extension":[".ts"],"exclude":["lib/typings","**/*.d.ts"],"reporter":["html","text-summary"],"all":true},"gitHead":"d81c5c79d8922918edea9ae9fe4b71906dee3c42","readme":"# @atomist/automation-seed\n\n[![npm version](https://img.shields.io/npm/v/@atomist/automation-seed.svg)](https://www.npmjs.com/package/@atomist/automation-seed)\n\nThis repository contains examples demonstrating use of the\n[Atomist][atomist] API for software.  You will find examples\nillustrating:\n\n-   Creating bot commands using _command handlers_\n-   Responding to DevOps events, e.g., commits pushed to a repository,\n    using _event handlers_\n\nThese examples use the [`@atomist/automation-client`][client] node\nmodule to implement a local client that connects to the Atomist API\nfor software.  See the [Atomist documentation][atomist-doc] for more\ninformation about Atomist, software delivery machines (SDM), and the\nAtomist API for software.\n\n[client]: https://github.com/atomist/automation-client-ts (@atomist/automation-client Node Module)\n[atomist-doc]: https://docs.atomist.com/ (Atomist Documentation)\n\n## Prerequisites\n\nBefore you can run this project, you will need an Atomist workspace.\nSee the [Atomist Getting Started Guide][atomist-start] for\ninstructions on how to get an Atomist workspace and connect it to your\nsource code repositories, continuous integration, chat platform, etc.\n\nYou will also need several other prerequisites to successfully run\nthis project.  See the [Atomist Developer Guide][atomist-dev] for\ninstructions on setting up your development environment.  Briefly, you\nwill need [Git][git], [Node.js][node], and the [Atomist\nCLI][atomist-cli] installed and properly configured on your system.\n\n[atomist-start]: https://docs.atomist.com/user/ (Atomist - Getting Started)\n[atomist-dev]: https://docs.atomist.com/developer/prerequisites/ (Atomist - Developer Prerequisites)\n[git]: https://git-scm.com/ (Git)\n[atomist-cli]: https://github.com/atomist/cli (Atomist Command-Line Interface)\n\n## Running\n\nOnce the prerequisites are met on your system, use `npm` to install\ndependencies and build the project.\n\n```\n$ npm install\n$ npm run build\n```\n\nYou can start up your SDM in the usual `npm` way.\n\n```\n$ npm start\n```\n\nThe [Atomist API Client documentation][atomist-client] has more\ncomplete instructions for running an SDM or other Atomist API client.\n\n[atomist-client]: https://docs.atomist.com/developer/client/ (Atomist - API Client)\n\n## Using\n\n### Invoking a command handler from Slack\n\nThis project contains the code to create and respond to a simple\n`hello world` bot command.  The code that defines the bot command and\nimplements responding to the command, i.e., the _command handler_, can\nbe found in [`HelloWorld.ts`][hello].  Once you have your local\nautomation client running (the previous step in this guide), you can\ninvoke the command handler by sending the Atomist bot the command as a\nmessage.  Be sure the Atomist bot is in the channel before sending it\nthe message.\n\n```\n/invite @atomist\n@atomist hello world\n```\n\nOnce you've submitted the command in Slack, you'll see the incoming\nand outgoing messages show up in the logs of your locally running\nautomation-client.  Ultimately, you should see the response from the\nbot in Slack.\n\n[hello]: https://github.com/atomist/automation-seed-ts/blob/master/src/commands/HelloWorld.ts (HelloWorld Command Handler)\n\nFeel free to modify the code in the `HelloWorld` command handler,\nNode.js will automatically reload the client, and see what happens!\n\n### Triggering an event handler\n\nWhile command handlers respond to commands you send the Atomist bot,\n_event handlers_ take action when different types of events occur in\nyour development and operations environment.  Some examples of events\nare commits pushed to a repo, or a CI build that fails, or an instance\nof a running service that becomes unhealthy.  Example responses to those\nevents are showing the commits in a Slack message, automatically\nrestarting the build, and triggering a PagerDuty alert, respectively.\n\nThe sample event handler in this project, [NotifyOnPush][nop-handler],\nwill notice when someone pushes new commits to a repository in the\nGitHub organization and send a notice of that push to all Slack\nchannels associated with that repository.\n\nIf you have followed the instructions above and are running these\nautomations against the atomist-playground Slack team and GitHub\norganization, go ahead and edit the [notify-on-push][nop-repo]\nrepository by adding some text to its [README][nop-readme].  Once you\nhave saved your changes, you should see that event appear in the\nconsole logs of your locally running automation client, followed by a\nlog of the actions the event handler is taking.  Once those actions\nare complete, you should see a new message in the\n[`#notify-on-push`][nop-channel] channel in the atomist-playground\nSlack team.\n\n[nop-handler]: https://github.com/atomist/automation-seed-ts/blob/master/src/events/NotifyOnPush.ts (Atomist NotifyOnPush Event Handler)\n[nop-repo]: https://github.com/atomist-playground/notify-on-push (Atomist NotifyOnPush Repository)\n[nop-readme]: https://github.com/atomist-playground/notify-on-push/edit/master/README.md (Edit NotifyOnPush README)\n[nop-channel]: https://atomist-playground.slack.com/messages/C7GNF6743/ (NotifyOnPush Slack Channel)\n\n## Support\n\nGeneral support questions should be discussed in the `#support`\nchannel in the [Atomist community Slack workspace][slack].\n\nIf you find a problem, please create an [issue][].\n\n[issue]: https://github.com/atomist/automation-seed-ts/issues\n\n## Development\n\nYou will need to install [Node.js][node] to build and test this\nproject.\n\n[node]: https://nodejs.org/ (Node.js)\n\n### Build and test\n\nInstall dependencies.\n\n```\n$ npm install\n```\n\nUse the `build` package script to compile, test, lint, and build the\ndocumentation.\n\n```\n$ npm run build\n```\n\n### Release\n\nReleases are handled via the [Atomist SDM][atomist-sdm].  Just press\nthe 'Approve' button in the Atomist dashboard or Slack.\n\n[atomist-sdm]: https://github.com/atomist/atomist-sdm (Atomist Software Delivery Machine)\n\n---\n\nCreated by [Atomist][atomist].\nNeed Help?  [Join our Slack workspace][slack].\n\n[atomist]: https://atomist.com/ (Atomist - How Teams Deliver Software)\n[slack]: https://join.atomist.com/ (Atomist Community Slack)\n","readmeFilename":"README.md","_id":"@atomist/automation-seed@0.12.1-master.20180903023406","_npmVersion":"6.4.0","_nodeVersion":"9.11.2","_npmUser":{"name":"atomist","email":"npm@atomist.com"},"dist":{"integrity":"sha512-OL5l8x0KUQI+VRjZ3WKEM5kc66u1sbkYL5xXMS3g8Z/sVYiFhActEKkNJ04wVQr72e4wATGcDvkOaoI9MfSqqg==","shasum":"73a09b1a327c5eac033627fee0a30a4bda8a9830","tarball":"https://registry.npmjs.org/@atomist/automation-seed/-/automation-seed-0.12.1-master.20180903023406.tgz","fileCount":22,"unpackedSize":161130,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbjJ5gCRA9TVsSAnZWagAAy9QP/jKbZtprlw0ulDWmHze5\novjzMBDWnc1/LWKJFz7pMAix43VAr5snRoXb14VW3u1nolTGdt+OS06eKEkr\nxSFzQ9K+mIx51EYqlhnyRSdW4gcWoeinzHW6Z3YNNXJqpthZvgKL9p0fwWpF\nwHAMJbE6OosiLyJ3xjTSYHGvrSDKALl6DZz0z+eVpD/WnnX3nH798Zzb5jpy\nG8oxk3XGU188aKbzREcqqSZP+Brnjthlqs6DUDTr8nXIqxY8esMb1k/aMJAL\nJQS8YNzVoM0iIkyuEwzXFgAVaBmQWu71rA8joKYz3/fi0Gavcwk/1hE08NjA\nuzaMcc09OsgjYWrDPGNUPTGI3bfN9HPMZ0sVKLLKWsBAJNYqWAsZcIIcNaCe\neVNyFecmx/Lb2xbP/ChJxlxOSnJJtfZRY03oGfXAnYZemtZ6d79YBRK8Rwi6\nXL9sLIODLjTF1xLjF9zVIsc3lMg2WZdtOf3yvFJ+IQAaNngaGXuttKTW4xn8\nVJrTRKixrLiQoPbwgRYYbOk+vgvsSdcBqomTSryrskWiivZUnFClG5/TkqIC\n5cXYFQgwREYeeuENc8oXG7VCmA4cGpV8ZAJkKzj/X/Adsnclwm3CbIZzhU32\nNTGGmzVNhFE/orBdOE/d/rnLqb7iPfjy/W/KM7wgg4urwciA52Smcdd/DAll\nk6xN\r\n=y4og\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCXwpZ0YtR+7gGloFWOsWG8MgUCn6D/Hk6FAY4M7ZBrFgIgbCdBECLdXhM/VCX72gRs1fN+rtZKrLUEdu5AYVi4cOM="}]},"maintainers":[{"name":"atomist","email":"npm@atomist.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/automation-seed_0.12.1-master.20180903023406_1535942239618_0.2215617840029862"},"_hasShrinkwrap":false}},"readme":"","maintainers":[{"email":"neil.prosser+npmjs@gmail.com","name":"neilprosser"},{"email":"npm@atomist.com","name":"atomist-bot"},{"email":"cd@atomist.com","name":"cdupuis"},{"email":"slimslenderslacks@gmail.com","name":"slimslenderslacks"}],"time":{"modified":"2023-02-23T17:59:03.789Z","created":"2017-11-22T22:35:46.513Z","0.2.0":"2017-11-22T22:35:46.513Z","0.1.0":"2017-11-22T22:36:40.213Z","0.3.0":"2018-01-08T20:10:16.755Z","0.4.0":"2018-01-17T15:20:25.900Z","0.5.0":"2018-01-31T20:10:22.927Z","0.6.0":"2018-02-05T20:17:29.410Z","0.7.0":"2018-02-06T19:10:42.185Z","0.8.0":"2018-03-19T14:08:15.030Z","0.9.0":"2018-04-10T21:52:58.418Z","0.10.0":"2018-04-13T15:28:38.538Z","0.11.0-20180801211420":"2018-08-01T21:17:29.746Z","0.11.0-20180802124848":"2018-08-02T12:52:15.513Z","0.11.0-20180802193437":"2018-08-02T19:37:47.489Z","0.11.0-20180804024747":"2018-08-04T02:50:33.331Z","0.11.0-20180807184806":"2018-08-07T18:51:17.387Z","0.11.0-20180808112529":"2018-08-08T11:28:43.871Z","0.11.0-20180808190936":"2018-08-08T19:12:55.050Z","0.11.0-20180813192630":"2018-08-13T19:29:51.982Z","0.11.0-20180816174223":"2018-08-16T17:45:42.058Z","0.11.0-20180816194654":"2018-08-16T19:50:11.646Z","0.11.0-20180817134623":"2018-08-17T13:49:39.698Z","0.11.0-20180817173946":"2018-08-17T17:44:15.220Z","0.11.0":"2018-08-17T18:05:26.067Z","0.11.1-20180817180629":"2018-08-17T18:09:43.690Z","0.12.0-20180819020446":"2018-08-19T02:07:22.547Z","0.12.0":"2018-08-19T02:08:42.900Z","0.12.1-20180819020933":"2018-08-19T02:12:21.744Z","0.12.1-20180821142050":"2018-08-21T14:24:42.690Z","0.12.1-20180821192601":"2018-08-21T19:29:52.175Z","0.12.1-20180822020716":"2018-08-22T02:10:19.391Z","0.12.1-20180822161843":"2018-08-22T16:23:15.656Z","0.12.1-master.20180829154543":"2018-08-29T15:48:52.123Z","0.12.1-de-deprecate.20180901235629":"2018-09-01T23:59:00.049Z","0.12.1-master.20180902181645":"2018-09-02T18:19:40.834Z","0.12.1-master.20180903023406":"2018-09-03T02:37:19.807Z"},"homepage":"https://github.com/atomist/automation-seed-ts#readme","keywords":["atomist","automation","seed"],"repository":{"type":"git","url":"git+https://github.com/atomist/automation-seed-ts.git"},"author":{"name":"Atomist"},"bugs":{"url":"https://github.com/atomist/automation-seed-ts/issues"},"license":"Apache-2.0","readmeFilename":""}