快速做到任何有网的地方可以处理
BearyChat自带了2个机器人,Incoming和Outgoing,现在让我们来看看如何用他们来把我们的审核流程串起来
post-commit
#!/usr/local/bin/python2.7
#-*- encoding:UTF-8 -*-
# johncan 2016-04-03 17:32:17
import sys
reload(sys)
sys.setdefaultencoding('utf8')
import commands
import requests
import json
incommint_url='https://hook.bearychat.com/xxxx'
git_ci_content = commands.getoutput('/usr/bin/git log -1 -p pre-commit')
payload = {"text":git_ci_content}
headers = {'content-type': 'application/json'}
r = requests.post(incommint_url, data=json.dumps(payload), headers=headers)
# print r.content
Outgoing机器人post的消息内容参考
{
"channel_name": "abc",
"subdomain": "xxxx",
"text": "!upgit 1ae4082",
"token": "xxxx",
"trigger_word": "!upgit",
"ts": 1459824707044,
"user_name": "xxxx"
}
这个对于我们目前的需求来说,不是必须的
一些说明
# 设置debug模式
export HUBOT_LOG_LEVEL="debug"
# 设置监听端口
export EXPRESS_PORT=8081
开始安装
yum install nodejs npm redis -y
# 此处请修改redis安全配置,然后启动redis
# 网上也有资料说不用redis也可以
/etc/init.d/redis start
npm install -g coffee-script hubot yo generator-hubot
# 比较奇怪,用root初始化hubot会出错,下面用普通用户初始化hubot
useradd bchubot
su - bchubot
sudo mkdir /data/bchubot
cd /data
sudo chown bchubot.bchubot bchubot
cd bchubot
yo hubot
npm install hubot-bearychat --save
去到机器人管理,添加Hubot,这里会生产一个Token,复制Token
export HUBOT_BEARYCHAT_TOKENS='token_from_bearycaht'
export EXPRESS_PORT=8081
/data/bchubot/bin/hubot -a bearychat
http://hubot_ip:hubot_port/
此时可以测试发送消息给hubot,测试指令精选
# hubot会回PONG
ping
# 会发送一张gif的http地址
pug me
Hubot的动作是需要用coffee-sctipts写的,没有深入研究
网上很多资料都说可以直接运行hubot就可以跟它聊天,我测试是不行的,campfire是它的默认插件,所以,最简单的应该是这个指令
hubot -a campfire
如果data中含有换行符和&等字符,需要用这种方式发,当时在这里耗了一天的时间
import json
url = 'https://api.github.com/some/endpoint'
payload = {'some': 'data'}
headers = {'content-type': 'application/json'}
r = requests.post(url, data=json.dumps(payload), headers=headers)
更多可以参考Requests的文档