本文整理汇总了TypeScript中hubot.IHubot类的典型用法代码示例。如果您正苦于以下问题:TypeScript IHubot类的具体用法?TypeScript IHubot怎么用?TypeScript IHubot使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了IHubot类的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的TypeScript代码示例。
示例1: default
export default (robot: IHubot, appveyor: IAppVeyor) => {
robot.respond(/deploy (.+) v(.+) to (.+)/i, res => {
const project = res.match[1];
const version = res.match[2];
const environment = res.match[3];
res.reply(`Starting deploy of '${project}' to '${environment}'...`);
appveyor.deploy(project, version, environment)
.then((data) => {
if (!data.ok) return res.reply(`Could not deploy. Got status code ${data.statusCode}`);
let msgData: ICustomMessageData = {
channel: res.message.room,
text: 'Deploy started',
attachments: [
{
fallback: `Started deploy of '${project}' v${version} to '${environment}': ${data.body.link}`,
title: `Started deploy of '${project}' v${version}`,
title_link: data.body.link,
text: `v${version}`,
color: '#2795b6'
}
]
};
const slackAdapter = robot.adapter as ISlackAdapter;
slackAdapter.customMessage(msgData);
})
.catch((reason) => robot.emit('error', reason, res));
});
}
示例2: default
export default (robot: IHubot, appVeyor: IAppVeyor) => {
robot.respond(/start build (.*)/i, res => {
const projectSlug = res.match[1]
res.reply('One moment please...');
appVeyor.build(projectSlug)
.then((data) => {
if (!data.ok) return res.reply(`Could not start build. Got status code ${data.statusCode}`);
const msgData: ICustomMessageData = {
channel: res.message.room,
text: 'Build started',
attachments: [
{
fallback: `Started build of '${projectSlug}' v${data.body.version}: ${data.body.link}`,
title: `Started build of '${projectSlug}'`,
title_link: data.body.link,
text: `v${data.body.version}`,
color: '#7CD197'
}
]
};
const slackAdapter = robot.adapter as ISlackAdapter;
slackAdapter.customMessage(msgData);
robot.brain.set(`${projectSlug}/${data.body.version}`, JSON.stringify({ username: res.message.user.name }));
})
.catch((reason) => robot.emit('error', reason, res));
});
robot.router.post('/hubot/appveyor/webhook', (req, res) => {
const auth = req.headers['authorization'];
if (auth !== Config.appveyor.webhook.token) return res.send(403);
const data = req.body.payload ? JSON.parse(req.body.payload) : req.body;
const outcome = data.eventName === 'build_success' ? 'succeeded' : 'failed';
let msg = `Build v${data.eventData.buildVersion} of '${data.eventData.projectName} ${outcome}.`;
const value = robot.brain.get(`${data.eventData.projectName}/${data.eventData.buildVersion}`);
if (value) {
const o = JSON.parse(value);
msg += ` @${o.username}`;
}
robot.messageRoom(Config.announce_channel, msg);
res.send(200);
});
}
示例3: default
export default (robot: IHubot, appVeyor: IAppVeyor) => {
const getColour = (status: string) => {
switch (status) {
case 'success': return '#7CD197';
case 'failed': return '#D17C8C';
}
return '#CCCCCC';
}
const firstUpper = (s: string) => {
return s[0].toUpperCase() + s.slice(1);
}
robot.respond(/list builds of (.*)/i, res => {
const projectSlug = res.match[1]
res.reply('One moment please...');
appVeyor.builds(projectSlug)
.then((data) => {
let msgData: ICustomMessageData = {
channel: res.message.room,
attachments: data.body.builds.map((build) => {
return {
fallback: `Build v${build.version}: ${build.status} ${build.link}`,
title: `Build v${build.version}`,
title_link: build.link,
text: firstUpper(build.status),
color: getColour(build.status),
fields: [
{
title: "Branch",
value: build.branch,
short: true
},
{
title: "Committer",
value: build.committer,
short: true
}
]
}
})
};
const slackAdapter = robot.adapter as ISlackAdapter;
slackAdapter.customMessage(msgData);
})
.catch(res.reply);
});
}
示例4: default
export default (robot: IHubot) => {
robot.error((err, res) => {
robot.logger.error(`Caught unhandled error.`, err);
const slackAdapter = robot.adapter as ISlackAdapter;
const customMessage: ICustomMessageData = {
channel: Config.error_channel,
attachments: [{
fallback: `I've just encountered this error: ${err}`,
color: '#801515',
title: `I've just encountered an error`,
text: `\`\`\`\n${err.stack}\n\`\`\``,
mrkdwn_in: ['text']
}]
};
slackAdapter.customMessage(customMessage);
if (res) res.reply('Uhh, sorry, I just experienced an error :goberserk:');
});
}
示例5: default
export default (robot: IHubot) => {
robot.respond(/hello/i, (res) => {
res.reply("Yeah, hello etc...");
});
}
示例6:
robot.router.post('/hubot/appveyor/webhook', (req, res) => {
const auth = req.headers['authorization'];
if (auth !== Config.appveyor.webhook.token) return res.send(403);
const data = req.body.payload ? JSON.parse(req.body.payload) : req.body;
const outcome = data.eventName === 'build_success' ? 'succeeded' : 'failed';
let msg = `Build v${data.eventData.buildVersion} of '${data.eventData.projectName} ${outcome}.`;
const value = robot.brain.get(`${data.eventData.projectName}/${data.eventData.buildVersion}`);
if (value) {
const o = JSON.parse(value);
msg += ` @${o.username}`;
}
robot.messageRoom(Config.announce_channel, msg);
res.send(200);
});