RocketChat/Rocket.Chat.Ops

View on GitHub
hubots/hubot-gitsy/src/gitlab/examples/reset-hooks.js

Summary

Maintainability
A
0 mins
Test Coverage
(function() {
  var Gitlab, credentials, gitlab;

  process.stdout.write('\u001B[2J\u001B[0;0f');

  Gitlab = require('..');

  credentials = require('./credentials');

  gitlab = new Gitlab({
    url: credentials.url,
    token: credentials.token
  });

  gitlab.projects.all(function(projects) {
    var _project, i, len, results;
    results = [];
    for (i = 0, len = projects.length; i < len; i++) {
      _project = projects[i];
      results.push((function() {
        var project;
        project = _project;
        return gitlab.projects.hooks.list(project.id, function(hooks) {
          var hook, j, len1, url;
          url = "" + credentials.service_hook_base + project.path_with_namespace;
          if (hooks.length > 1) {
            return console.log(url + " too much hooks");
          } else if (hooks.length === 1) {
            for (j = 0, len1 = hooks.length; j < len1; j++) {
              hook = hooks[j];
              if (hook.url !== url) {
                gitlab.projects.hooks.remove(project.id, hook.id, function(ret) {
                  return console.log(ret);
                });
              }
            }
            return console.log(url + " is already OK");
          } else {
            return gitlab.projects.hooks.add(project.id, url, function() {
              return console.log(url + " has been added");
            });
          }
        });
      })());
    }
    return results;
  });

}).call(this);