Add README/documentation #19
							
								
								
									
										62
									
								
								README.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										62
									
								
								README.md
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,62 @@
 | 
				
			|||||||
 | 
					# hubot-kredits
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					This repository provides scripts for integrating [Kosmos
 | 
				
			||||||
 | 
					Kredits](https://wiki.kosmos.org/Kredits) in [Hubot](http://hubot.github.com/)
 | 
				
			||||||
 | 
					chatbots. The bot will watch for project-related things happening on the
 | 
				
			||||||
 | 
					Internet and automatically create proposals for issuing kredits for project
 | 
				
			||||||
 | 
					contributions.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## Setup
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					You will need an Ethereum wallet for your bot, so it can interact with the
 | 
				
			||||||
 | 
					Ethereum smart contracts. `npm run create-wallet` will do the job for you.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## Configuration
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					As usual in Hubot, you can add all config as environment variables.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					| Key | Description |
 | 
				
			||||||
 | 
					| --- | --- |
 | 
				
			||||||
 | 
					| `KREDITS_WEBHOOK_TOKEN` | A string for building your secret webhook URLs |
 | 
				
			||||||
 | 
					| `KREDITS_ROOM` | The bot will talk to you in this room |
 | 
				
			||||||
 | 
					| `KREDITS_WALLET_PATH` | Path to an Etherum wallet JSON file (default: `./wallet.json`) |
 | 
				
			||||||
 | 
					| `KREDITS_WALLET_PASSWORD` | Wallet password |
 | 
				
			||||||
 | 
					| `KREDITS_PROVIDER_URL` | Ethereum JSON-RPC URL (default: `http://localhost:7545`) |
 | 
				
			||||||
 | 
					| `KREDITS_NETWORK_ID` | The ethereum network ID to use (default: 100 = local) |
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## Integrations
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### GitHub
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					The GitHub integration will watch for closed issues and merged pull requests,
 | 
				
			||||||
 | 
					which carry a kredits label: `kredits-1`, `kredits-2`, `kredits-3` for small,
 | 
				
			||||||
 | 
					medium and large contributions. If there are multiple people assigned, it will
 | 
				
			||||||
 | 
					issue proposals for all of them.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#### Setup
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Point a GitHub organization webhook to the following URL:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    https://your-hubot.example.com/incoming/kredits/github/{webhook_token}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#### Config
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					| Key | Description |
 | 
				
			||||||
 | 
					| --- | --- |
 | 
				
			||||||
 | 
					| `KREDITS_GITHUB_REPO_BLACKLIST` | Repos which you do not want to issue kredits for. Format: `orgname/reponame`, e.g. `67P/test-one-two` |
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### MediaWiki
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					The MediaWiki integration will periodically check for wiki page creations and
 | 
				
			||||||
 | 
					edits. It will create kredits proposals based on amount of text added.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#### Setup
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					No setup needed, except for configuring the wiki URL. The bot will poll your
 | 
				
			||||||
 | 
					wiki's API on its own.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#### Config
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					| Key | Description |
 | 
				
			||||||
 | 
					| --- | --- |
 | 
				
			||||||
 | 
					| `KREDITS_MEDIAWIKI_URL` | Your wiki URL, e.g. `https://wiki.kosmos.org/` |
 | 
				
			||||||
							
								
								
									
										15
									
								
								index.js
									
									
									
									
									
								
							
							
						
						
									
										15
									
								
								index.js
									
									
									
									
									
								
							@ -1,18 +1,3 @@
 | 
				
			|||||||
// Description:
 | 
					 | 
				
			||||||
//   Kosmos Kredits chat integration
 | 
					 | 
				
			||||||
//
 | 
					 | 
				
			||||||
// Configuration:
 | 
					 | 
				
			||||||
//   KREDITS_WEBHOOK_TOKEN: A string for building your secret webhook URL
 | 
					 | 
				
			||||||
//   KREDITS_ROOM: Kredit Proposals are posted to this chatroom
 | 
					 | 
				
			||||||
//   KREDITS_WALLET_PATH: Path to a etherum wallet JSON file
 | 
					 | 
				
			||||||
//   KREDITS_WALLET_PASSWORD: Wallet password
 | 
					 | 
				
			||||||
//   KREDITS_PROVIDER_URL: Ethereum JSON-RPC URL (default 'http://localhost:7545')
 | 
					 | 
				
			||||||
//   KREDITS_NETWORK_ID: The ethereum network ID to use (default 100 = local)
 | 
					 | 
				
			||||||
//   IPFS_API_HOST: Host/domain (default 'localhost')
 | 
					 | 
				
			||||||
//   IPFS_API_PORT: Port number (default '5001')
 | 
					 | 
				
			||||||
//   IPFS_API_PROTOCOL: Protocol, e.g. 'http' or 'https' (default 'http')
 | 
					 | 
				
			||||||
//
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
const fs = require('fs');
 | 
					const fs = require('fs');
 | 
				
			||||||
const util = require('util');
 | 
					const util = require('util');
 | 
				
			||||||
const fetch = require('node-fetch');
 | 
					const fetch = require('node-fetch');
 | 
				
			||||||
 | 
				
			|||||||
@ -7,7 +7,7 @@
 | 
				
			|||||||
    "test": "echo \"Error: no test specified\" && exit 1"
 | 
					    "test": "echo \"Error: no test specified\" && exit 1"
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
  "bin": {
 | 
					  "bin": {
 | 
				
			||||||
    "kredits-wallet-create": "scripts/create-wallet.js"
 | 
					    "create-wallet": "scripts/create-wallet.js"
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
  "dependencies": {
 | 
					  "dependencies": {
 | 
				
			||||||
    "ethers": "^3.0.15",
 | 
					    "ethers": "^3.0.15",
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user