Exemple #1
0
module.exports = function(msg) {
  var issueKey = msg.match[1];

  var backlog = backlogApi();
  var issue = null;
  var items = null;
  var tasks = [];
  tasks.push(function(next) {
    backlog.getIssue({ issueKey: issueKey }, function(err, i) {
      if (err) return next(err);
      issue = i;
      return next();
    });
  });
  tasks.push(function(next) {
    backlog.getComments({ issueId: issue.id }, function(err, i) {
      if (err) return next(err);
      items = i;
      return next();
    });
  });
  tasks.push(function(next) {
    var messages = [];
    messages.push('count=' + items.length);
    messages = messages.concat(items.map(function(i) {
      return i.created_user.name + '\t' + i.content;
    }));
    var message = messages.join('\n');
    next(null, message);
  });
  async.waterfall(tasks, function(err, message) {
    if (err) return msg.send(err);
    msg.send(message);
  });
};
  robot.respond(/script-issue(\s+(\S.*?))?\s*$/i, function(res) {
    var spaceId  = process.env.HUBOT_SCRIPT_ISSUE_SPACE_ID;
    var username = process.env.HUBOT_SCRIPT_ISSUE_USERNAME;
    var password = process.env.HUBOT_SCRIPT_ISSUE_PASSWORD;
    var projectKey = process.env.HUBOT_SCRIPT_ISSUE_PROJECT_KEY;
    var componentName = process.env.HUBOT_SCRIPT_ISSUE_COMPONENT_NAME;

    var backlog = backlogApi(spaceId, username, password);

    var projectId;
    var componentId;
    backlog.getProject({ projectKey: projectKey })
    .then(function(project) {
      projectId = project.id;
      return backlog.getComponents({ projectId: projectId });
    })
    .then(function(components) {
      var component = components.filter(function(c) {
        return c.name === componentName;
      })[0];
      componentId = component.id;

      if (res.match[1]) {
        return backlog.createIssue({
          projectId: projectId,
          summary: res.match[2],
          componentId: componentId,
        });
      } else {
        var deferred = q.defer();
        deferred.resolve();
        return deferred.promise;
      }
    })
    .then(function() {
      return backlog.findIssue({
        projectId: projectId,
        componentId: componentId,
        statusId: [1, 2, 3],
      });
    })
    .then(function(issues) {
      res.send(issues.map(function(i) {
        return i.summary + ' ' + i.url;
      }).join('\n'));
    })
    .fail(function(e) {
      res.send('error:' + util.inspect(e));
    });
  });
Exemple #3
0
setInterval(function() {
  var backlog = backlogApi();

  backlog.getTimeline()
  .then(function(activities) {
    activities.reverse().forEach(function(activity) {
      if (!allActivities[activity.updated_on]) {
        allActivities[activity.updated_on] = activity;
        console.log(formatActivity(activity));
      }
    });
  })
  .catch(function(err) {
    console.error(err);
  });
}, 10 * 1000);
Exemple #4
0
module.exports = function(msg) {
  var projectKey = msg.match[1];

  var backlog = backlogApi();
  var project = null;
  var items = null;
  var tasks = [];
  tasks.push(function(next) {
    backlog.getProject({
      projectKey: projectKey
    }, function(err, p) {
      if (err) return next(err);
      project = p;
      next();
    });
  });
  tasks.push(function(next) {
    backlog.getIssueTypes({ projectId: project.id }, function(err, i) {
      if (err) return next(err);
      items = i;
      return next();
    });
  });
  tasks.push(function(next) {
    var messages = [];
    messages.push('count=' + items.length);
    messages = messages.concat(items.map(function(i) {
      return i.name;
    }));
    var message = messages.join('\n');
    next(null, message);
  });
  async.waterfall(tasks, function(err, message) {
    if (err) return msg.send(err);
    msg.send(message);
  });
};
Exemple #5
0
var client = function(options) {
  var auth = authenticate(options);
  return backlogApi(auth.spaceId, auth.username, auth.password);
};