当前位置: 首页>>代码示例>>TypeScript>>正文


TypeScript hubot.IHubot类代码示例

本文整理汇总了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));
  });
}
开发者ID:adamwitko,项目名称:hubot-appveyor,代码行数:33,代码来源:deploy.ts

示例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);
  });
}
开发者ID:adamwitko,项目名称:hubot-appveyor,代码行数:51,代码来源:build.ts

示例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);
  });
}
开发者ID:adamwitko,项目名称:hubot-appveyor,代码行数:51,代码来源:builds.ts

示例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:');
  });
}
开发者ID:adamwitko,项目名称:hubot-appveyor,代码行数:23,代码来源:error.ts

示例5: default

export default (robot: IHubot) => {
  robot.respond(/hello/i, (res) => {
    res.reply("Yeah, hello etc...");
  });
}
开发者ID:adamwitko,项目名称:hubot-appveyor,代码行数:5,代码来源:hello.ts

示例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);
  });
开发者ID:adamwitko,项目名称:hubot-appveyor,代码行数:18,代码来源:build.ts


注:本文中的hubot.IHubot类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。