本文整理汇总了TypeScript中hubot.IHubot.respond方法的典型用法代码示例。如果您正苦于以下问题:TypeScript IHubot.respond方法的具体用法?TypeScript IHubot.respond怎么用?TypeScript IHubot.respond使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类hubot.IHubot
的用法示例。
在下文中一共展示了IHubot.respond方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的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.respond(/hello/i, (res) => {
res.reply("Yeah, hello etc...");
});
}