summaryrefslogtreecommitdiff
path: root/octokit/octokit.js
diff options
context:
space:
mode:
authorGubolin <gubolin@fantasymail.de>2014-08-03 17:42:18 +0200
committerGubolin <gubolin@fantasymail.de>2014-08-03 17:42:18 +0200
commit62f7c7afde5b7ea924b97c225fb5655c01d70d52 (patch)
tree82fa0c07f2d105765382f7045d40a17127b8f72c /octokit/octokit.js
parentd54340a6571ebe140046e9f56c3450ac2b2178b5 (diff)
downloadsnap-62f7c7afde5b7ea924b97c225fb5655c01d70d52.tar.gz
snap-62f7c7afde5b7ea924b97c225fb5655c01d70d52.zip
remove the old directory octokit
Diffstat (limited to 'octokit/octokit.js')
-rw-r--r--octokit/octokit.js1465
1 files changed, 0 insertions, 1465 deletions
diff --git a/octokit/octokit.js b/octokit/octokit.js
deleted file mode 100644
index 40d8576..0000000
--- a/octokit/octokit.js
+++ /dev/null
@@ -1,1465 +0,0 @@
-(function() {
- var Octokit, Promise, XMLHttpRequest, allPromises, createGlobalAndAMD, encode, err, injector, makeOctokit, newPromise, _, _ref,
- _this = this,
- __hasProp = {}.hasOwnProperty,
- __extends = function(child, parent) { for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },
- __slice = [].slice;
-
- _ = {};
-
- _.isEmpty = function(object) {
- return Object.keys(object).length === 0;
- };
-
- _.isArray = function(object) {
- return !!(object != null ? object.slice : void 0);
- };
-
- _.defaults = function(object, values) {
- var key, _i, _len, _ref, _results;
- _ref = Object.keys(values);
- _results = [];
- for (_i = 0, _len = _ref.length; _i < _len; _i++) {
- key = _ref[_i];
- _results.push((function(key) {
- return object[key] != null ? object[key] : object[key] = values[key];
- })(key));
- }
- return _results;
- };
-
- _.each = function(object, fn) {
- var arr, key, _i, _len, _ref, _results;
- if (!object) {
- return;
- }
- if (_.isArray(object)) {
- object.forEach(fn);
- }
- arr = [];
- _ref = Object.keys(object);
- _results = [];
- for (_i = 0, _len = _ref.length; _i < _len; _i++) {
- key = _ref[_i];
- _results.push((function(key) {
- return fn(object[key]);
- })(key));
- }
- return _results;
- };
-
- _.pairs = function(object) {
- var arr, key, _fn, _i, _len, _ref;
- arr = [];
- _ref = Object.keys(object);
- _fn = function(key) {
- return arr.push([key, object[key]]);
- };
- for (_i = 0, _len = _ref.length; _i < _len; _i++) {
- key = _ref[_i];
- _fn(key);
- }
- return arr;
- };
-
- _.map = function(object, fn) {
- var arr, key, _fn, _i, _len, _ref;
- if (_.isArray(object)) {
- return object.map(fn);
- }
- arr = [];
- _ref = Object.keys(object);
- _fn = function(key) {
- return arr.push(fn(object[key]));
- };
- for (_i = 0, _len = _ref.length; _i < _len; _i++) {
- key = _ref[_i];
- _fn(key);
- }
- return arr;
- };
-
- _.last = function(object, n) {
- var len;
- len = object.length;
- return object.slice(len - n, len);
- };
-
- _.select = function(object, fn) {
- return object.filter(fn);
- };
-
- _.extend = function(object, template) {
- var key, _fn, _i, _len, _ref;
- _ref = Object.keys(template);
- _fn = function(key) {
- return object[key] = template[key];
- };
- for (_i = 0, _len = _ref.length; _i < _len; _i++) {
- key = _ref[_i];
- _fn(key);
- }
- return object;
- };
-
- _.toArray = function(object) {
- return Array.prototype.slice.call(object);
- };
-
- makeOctokit = function(newPromise, allPromises, XMLHttpRequest, base64encode, userAgent) {
- var Octokit, ajax, rejectedPromise, resolvedPromise;
- ajax = function(options) {
- return newPromise(function(resolve, reject) {
- var name, value, xhr, _ref;
- xhr = new XMLHttpRequest();
- xhr.dataType = options.dataType;
- if (typeof xhr.overrideMimeType === "function") {
- xhr.overrideMimeType(options.mimeType);
- }
- xhr.open(options.type, options.url);
- if (options.data && 'GET' !== options.type) {
- xhr.setRequestHeader('Content-Type', options.contentType);
- }
- _ref = options.headers;
- for (name in _ref) {
- value = _ref[name];
- xhr.setRequestHeader(name, value);
- }
- xhr.onreadystatechange = function() {
- var _name, _ref1;
- if (4 === xhr.readyState) {
- if ((_ref1 = options.statusCode) != null) {
- if (typeof _ref1[_name = xhr.status] === "function") {
- _ref1[_name]();
- }
- }
- if (xhr.status >= 200 && xhr.status < 300 || xhr.status === 304) {
- return resolve(xhr);
- } else {
- return reject(xhr);
- }
- }
- };
- return xhr.send(options.data);
- });
- };
- resolvedPromise = function(val) {
- return newPromise(function(resolve, reject) {
- return resolve(val);
- });
- };
- rejectedPromise = function(err) {
- return newPromise(function(resolve, reject) {
- return reject(err);
- });
- };
- Octokit = (function() {
- function Octokit(clientOptions) {
- var AuthenticatedUser, Branch, ETagResponse, Gist, GitRepo, Organization, Repository, Team, User, clearCache, getCache, notifyEnd, notifyStart, setCache, toQueryString, _cachedETags, _client, _listeners, _request;
- if (clientOptions == null) {
- clientOptions = {};
- }
- _.defaults(clientOptions, {
- rootURL: 'https://api.github.com',
- useETags: true,
- usePostInsteadOfPatch: false
- });
- _client = this;
- _listeners = [];
- ETagResponse = (function() {
- function ETagResponse(eTag, data, status) {
- this.eTag = eTag;
- this.data = data;
- this.status = status;
- }
-
- return ETagResponse;
-
- })();
- _cachedETags = {};
- notifyStart = function(promise, path) {
- return typeof promise.notify === "function" ? promise.notify({
- type: 'start',
- path: path
- }) : void 0;
- };
- notifyEnd = function(promise, path) {
- return typeof promise.notify === "function" ? promise.notify({
- type: 'end',
- path: path
- }) : void 0;
- };
- _request = function(method, path, data, options) {
- var auth, headers, mimeType, promise;
- if (options == null) {
- options = {
- raw: false,
- isBase64: false,
- isBoolean: false
- };
- }
- if ('PATCH' === method && clientOptions.usePostInsteadOfPatch) {
- method = 'POST';
- }
- if (!/^http/.test(path)) {
- path = "" + clientOptions.rootURL + path;
- }
- mimeType = void 0;
- if (options.isBase64) {
- mimeType = 'text/plain; charset=x-user-defined';
- }
- headers = {
- 'Accept': 'application/vnd.github.raw'
- };
- if (userAgent) {
- headers['User-Agent'] = userAgent;
- }
- if (path in _cachedETags) {
- headers['If-None-Match'] = _cachedETags[path].eTag;
- } else {
- headers['If-Modified-Since'] = 'Thu, 01 Jan 1970 00:00:00 GMT';
- }
- if (clientOptions.token || (clientOptions.username && clientOptions.password)) {
- if (clientOptions.token) {
- auth = "token " + clientOptions.token;
- } else {
- auth = 'Basic ' + base64encode("" + clientOptions.username + ":" + clientOptions.password);
- }
- headers['Authorization'] = auth;
- }
- promise = newPromise(function(resolve, reject) {
- var ajaxConfig, always, onError, xhrPromise,
- _this = this;
- ajaxConfig = {
- url: path,
- type: method,
- contentType: 'application/json',
- mimeType: mimeType,
- headers: headers,
- processData: false,
- data: !options.raw && data && JSON.stringify(data) || data,
- dataType: !options.raw ? 'json' : void 0
- };
- if (options.isBoolean) {
- ajaxConfig.statusCode = {
- 204: function() {
- return resolve(true);
- },
- 404: function() {
- return resolve(false);
- }
- };
- }
- xhrPromise = ajax(ajaxConfig);
- always = function(jqXHR) {
- var listener, rateLimit, rateLimitRemaining, _i, _len, _results;
- notifyEnd(_this, path);
- rateLimit = parseFloat(jqXHR.getResponseHeader('X-RateLimit-Limit'));
- rateLimitRemaining = parseFloat(jqXHR.getResponseHeader('X-RateLimit-Remaining'));
- _results = [];
- for (_i = 0, _len = _listeners.length; _i < _len; _i++) {
- listener = _listeners[_i];
- _results.push(listener(rateLimitRemaining, rateLimit, method, path, data, options));
- }
- return _results;
- };
- xhrPromise.then(function(jqXHR) {
- var converted, eTag, eTagResponse, i, links, valOptions, _i, _ref;
- always(jqXHR);
- if (304 === jqXHR.status) {
- if (clientOptions.useETags && _cachedETags[path]) {
- eTagResponse = _cachedETags[path];
- return resolve(eTagResponse.data, eTagResponse.status, jqXHR);
- } else {
- return resolve(jqXHR.responseText, status, jqXHR);
- }
- } else if (204 === jqXHR.status && options.isBoolean) {
- return resolve(true, status, jqXHR);
- } else {
- if (jqXHR.responseText && 'json' === ajaxConfig.dataType) {
- data = JSON.parse(jqXHR.responseText);
- valOptions = {};
- links = jqXHR.getResponseHeader('Link');
- _.each(links != null ? links.split(',') : void 0, function(part) {
- var discard, href, rel, _ref;
- _ref = part.match(/<([^>]+)>;\ rel="([^"]+)"/), discard = _ref[0], href = _ref[1], rel = _ref[2];
- return valOptions["" + rel + "Page"] = function() {
- return _request('GET', href, null, options);
- };
- });
- _.extend(data, valOptions);
- } else {
- data = jqXHR.responseText;
- }
- if ('GET' === method && options.isBase64) {
- converted = '';
- for (i = _i = 0, _ref = data.length; 0 <= _ref ? _i <= _ref : _i >= _ref; i = 0 <= _ref ? ++_i : --_i) {
- converted += String.fromCharCode(data.charCodeAt(i) & 0xff);
- }
- data = converted;
- }
- if ('GET' === method && jqXHR.getResponseHeader('ETag') && clientOptions.useETags) {
- eTag = jqXHR.getResponseHeader('ETag');
- _cachedETags[path] = new ETagResponse(eTag, data, jqXHR.status);
- }
- return resolve(data, jqXHR.status, jqXHR);
- }
- });
- onError = function(jqXHR) {
- var err, json;
- always(jqXHR);
- if (options.isBoolean && 404 === jqXHR.status) {
- return resolve(false);
- } else {
- if (jqXHR.getResponseHeader('Content-Type') !== 'application/json; charset=utf-8') {
- err = new Error(jqXHR.responseText);
- err['status'] = jqXHR.status;
- err['__jqXHR'] = jqXHR;
- return reject(err);
- } else {
- err = new Error("Github error: " + jqXHR.responseText);
- if (jqXHR.responseText) {
- json = JSON.parse(jqXHR.responseText);
- } else {
- json = '';
- }
- err['error'] = json;
- err['status'] = jqXHR.status;
- err['__jqXHR'] = jqXHR;
- return reject(err);
- }
- }
- };
- return (typeof xhrPromise["catch"] === "function" ? xhrPromise["catch"](onError) : void 0) || xhrPromise.fail(onError);
- });
- notifyStart(promise, path);
- return promise;
- };
- toQueryString = function(options) {
- var params;
- if (_.isEmpty(options)) {
- return '';
- }
- params = [];
- _.each(_.pairs(options), function(_arg) {
- var key, value;
- key = _arg[0], value = _arg[1];
- return params.push("" + key + "=" + (encodeURIComponent(value)));
- });
- return "?" + (params.join('&'));
- };
- this.clearCache = clearCache = function() {
- return _cachedETags = {};
- };
- this.getCache = getCache = function() {
- return _cachedETags;
- };
- this.setCache = setCache = function(cachedETags) {
- if (!(cachedETags !== null && typeof cachedETags === 'object')) {
- throw new Error('BUG: argument of method "setCache" should be an object');
- } else {
- return _cachedETags = cachedETags;
- }
- };
- this.onRateLimitChanged = function(listener) {
- return _listeners.push(listener);
- };
- this.getZen = function() {
- return _request('GET', '/zen', null, {
- raw: true
- });
- };
- this.getAllUsers = function(since) {
- var options;
- if (since == null) {
- since = null;
- }
- options = {};
- if (since) {
- options.since = since;
- }
- return _request('GET', '/users', options);
- };
- this.getOrgRepos = function(orgName, type) {
- if (type == null) {
- type = 'all';
- }
- return _request('GET', "/orgs/" + orgName + "/repos?type=" + type + "&per_page=1000&sort=updated&direction=desc", null);
- };
- this.getPublicGists = function(since) {
- var getDate, options;
- if (since == null) {
- since = null;
- }
- options = null;
- getDate = function(time) {
- if (Date === time.constructor) {
- return time.toISOString();
- }
- return time;
- };
- if (since) {
- options = {
- since: getDate(since)
- };
- }
- return _request('GET', '/gists/public', options);
- };
- this.getPublicEvents = function() {
- return _request('GET', '/events', null);
- };
- this.getNotifications = function(options) {
- var getDate, queryString;
- if (options == null) {
- options = {};
- }
- getDate = function(time) {
- if (Date === time.constructor) {
- return time.toISOString();
- }
- return time;
- };
- if (options.since) {
- options.since = getDate(options.since);
- }
- queryString = toQueryString(options);
- return _request('GET', "/notifications" + queryString, null);
- };
- User = (function() {
- function User(_username) {
- var _cachedInfo, _rootPath;
- if (_username == null) {
- _username = null;
- }
- if (_username) {
- _rootPath = "/users/" + _username;
- } else {
- _rootPath = "/user";
- }
- _cachedInfo = null;
- this.getInfo = function(force) {
- if (force == null) {
- force = false;
- }
- if (force) {
- _cachedInfo = null;
- }
- if (_cachedInfo) {
- return resolvedPromise(_cachedInfo);
- }
- return _request('GET', "" + _rootPath, null).then(function(info) {
- return _cachedInfo = info;
- });
- };
- this.getRepos = function(type, sort, direction) {
- if (type == null) {
- type = 'all';
- }
- if (sort == null) {
- sort = 'pushed';
- }
- if (direction == null) {
- direction = 'desc';
- }
- return _request('GET', "" + _rootPath + "/repos?type=" + type + "&per_page=1000&sort=" + sort + "&direction=" + direction, null);
- };
- this.getOrgs = function() {
- return _request('GET', "" + _rootPath + "/orgs", null);
- };
- this.getGists = function() {
- return _request('GET', "" + _rootPath + "/gists", null);
- };
- this.getFollowers = function() {
- return _request('GET', "" + _rootPath + "/followers", null);
- };
- this.getFollowing = function() {
- return _request('GET', "" + _rootPath + "/following", null);
- };
- this.isFollowing = function(user) {
- return _request('GET', "" + _rootPath + "/following/" + user, null, {
- isBoolean: true
- });
- };
- this.getPublicKeys = function() {
- return _request('GET', "" + _rootPath + "/keys", null);
- };
- this.getReceivedEvents = function(onlyPublic) {
- var isPublic;
- if (!_username) {
- throw new Error('BUG: This does not work for authenticated users yet!');
- }
- isPublic = '';
- if (onlyPublic) {
- isPublic = '/public';
- }
- return _request('GET', "/users/" + _username + "/received_events" + isPublic, null);
- };
- this.getEvents = function(onlyPublic) {
- var isPublic;
- if (!_username) {
- throw new Error('BUG: This does not work for authenticated users yet!');
- }
- isPublic = '';
- if (onlyPublic) {
- isPublic = '/public';
- }
- return _request('GET', "/users/" + _username + "/events" + isPublic, null);
- };
- }
-
- return User;
-
- })();
- AuthenticatedUser = (function(_super) {
- __extends(AuthenticatedUser, _super);
-
- function AuthenticatedUser() {
- AuthenticatedUser.__super__.constructor.call(this);
- this.updateInfo = function(options) {
- return _request('PATCH', '/user', options);
- };
- this.getGists = function() {
- return _request('GET', '/gists', null);
- };
- this.follow = function(username) {
- return _request('PUT', "/user/following/" + username, null);
- };
- this.unfollow = function(username) {
- return _request('DELETE', "/user/following/" + username, null);
- };
- this.getEmails = function() {
- return _request('GET', '/user/emails', null);
- };
- this.addEmail = function(emails) {
- if (!_.isArray(emails)) {
- emails = [emails];
- }
- return _request('POST', '/user/emails', emails);
- };
- this.addEmail = function(emails) {
- if (!_.isArray(emails)) {
- emails = [emails];
- }
- return _request('DELETE', '/user/emails', emails);
- };
- this.getPublicKey = function(id) {
- return _request('GET', "/user/keys/" + id, null);
- };
- this.addPublicKey = function(title, key) {
- return _request('POST', "/user/keys", {
- title: title,
- key: key
- });
- };
- this.updatePublicKey = function(id, options) {
- return _request('PATCH', "/user/keys/" + id, options);
- };
- this.createRepo = function(name, options) {
- if (options == null) {
- options = {};
- }
- options.name = name;
- return _request('POST', "/user/repos", options);
- };
- this.getReceivedEvents = function(username, page) {
- var currentPage;
- if (page == null) {
- page = 1;
- }
- currentPage = '?page=' + page;
- return _request('GET', '/users/' + username + '/received_events' + currentPage, null);
- };
- }
-
- return AuthenticatedUser;
-
- })(User);
- Team = (function() {
- function Team(id) {
- this.id = id;
- this.getInfo = function() {
- return _request('GET', "/teams/" + this.id, null);
- };
- this.updateTeam = function(options) {
- return _request('PATCH', "/teams/" + this.id, options);
- };
- this.remove = function() {
- return _request('DELETE', "/teams/" + this.id);
- };
- this.getMembers = function() {
- return _request('GET', "/teams/" + this.id + "/members");
- };
- this.isMember = function(user) {
- return _request('GET', "/teams/" + this.id + "/members/" + user, null, {
- isBoolean: true
- });
- };
- this.addMember = function(user) {
- return _request('PUT', "/teams/" + this.id + "/members/" + user);
- };
- this.removeMember = function(user) {
- return _request('DELETE', "/teams/" + this.id + "/members/" + user);
- };
- this.getRepos = function() {
- return _request('GET', "/teams/" + this.id + "/repos");
- };
- this.addRepo = function(orgName, repoName) {
- return _request('PUT', "/teams/" + this.id + "/repos/" + orgName + "/" + repoName);
- };
- this.removeRepo = function(orgName, repoName) {
- return _request('DELETE', "/teams/" + this.id + "/repos/" + orgName + "/" + repoName);
- };
- }
-
- return Team;
-
- })();
- Organization = (function() {
- function Organization(name) {
- this.name = name;
- this.getInfo = function() {
- return _request('GET', "/orgs/" + this.name, null);
- };
- this.updateInfo = function(options) {
- return _request('PATCH', "/orgs/" + this.name, options);
- };
- this.getTeams = function() {
- return _request('GET', "/orgs/" + this.name + "/teams", null);
- };
- this.createTeam = function(name, repoNames, permission) {
- var options;
- if (repoNames == null) {
- repoNames = null;
- }
- if (permission == null) {
- permission = 'pull';
- }
- options = {
- name: name,
- permission: permission
- };
- if (repoNames) {
- options.repo_names = repoNames;
- }
- return _request('POST', "/orgs/" + this.name + "/teams", options);
- };
- this.getMembers = function() {
- return _request('GET', "/orgs/" + this.name + "/members", null);
- };
- this.isMember = function(user) {
- return _request('GET', "/orgs/" + this.name + "/members/" + user, null, {
- isBoolean: true
- });
- };
- this.removeMember = function(user) {
- return _request('DELETE', "/orgs/" + this.name + "/members/" + user, null);
- };
- this.createRepo = function(name, options) {
- if (options == null) {
- options = {};
- }
- options.name = name;
- return _request('POST', "/orgs/" + this.name + "/repos", options);
- };
- this.getRepos = function() {
- return _request('GET', "/orgs/" + this.name + "/repos?type=all", null);
- };
- }
-
- return Organization;
-
- })();
- GitRepo = (function() {
- function GitRepo(repoUser, repoName) {
- var _repoPath;
- this.repoUser = repoUser;
- this.repoName = repoName;
- _repoPath = "/repos/" + this.repoUser + "/" + this.repoName;
- this.deleteRepo = function() {
- return _request('DELETE', "" + _repoPath);
- };
- this._updateTree = function(branch) {
- return this.getRef("heads/" + branch);
- };
- this.getRef = function(ref) {
- var _this = this;
- return _request('GET', "" + _repoPath + "/git/refs/" + ref, null).then(function(res) {
- return res.object.sha;
- });
- };
- this.createRef = function(options) {
- return _request('POST', "" + _repoPath + "/git/refs", options);
- };
- this.deleteRef = function(ref) {
- return _request('DELETE', "" + _repoPath + "/git/refs/" + ref, this.options);
- };
- this.getBranches = function() {
- var _this = this;
- return _request('GET', "" + _repoPath + "/git/refs/heads", null).then(function(heads) {
- return _.map(heads, function(head) {
- return _.last(head.ref.split("/"));
- });
- });
- };
- this.getBlob = function(sha, isBase64) {
- return _request('GET', "" + _repoPath + "/git/blobs/" + sha, null, {
- raw: true,
- isBase64: isBase64
- });
- };
- this.getSha = function(branch, path) {
- var _this = this;
- if (path === '') {
- return this.getRef("heads/" + branch);
- }
- return this.getTree(branch, {
- recursive: true
- }).then(function(tree) {
- var file;
- file = _.select(tree, function(file) {
- return file.path === path;
- })[0];
- if (file != null ? file.sha : void 0) {
- return file != null ? file.sha : void 0;
- }
- return rejectedPromise({
- message: 'SHA_NOT_FOUND'
- });
- });
- };
- this.getContents = function(path, sha) {
- var queryString,
- _this = this;
- if (sha == null) {
- sha = null;
- }
- queryString = '';
- if (sha !== null) {
- queryString = toQueryString({
- ref: sha
- });
- }
- return _request('GET', "" + _repoPath + "/contents/" + path + queryString, null, {
- raw: true
- }).then(function(contents) {
- return contents;
- });
- };
- this.removeFile = function(path, message, sha, branch) {
- var params;
- params = {
- message: message,
- sha: sha,
- branch: branch
- };
- return _request('DELETE', "" + _repoPath + "/contents/" + path, params, null);
- };
- this.getTree = function(tree, options) {
- var queryString,
- _this = this;
- if (options == null) {
- options = null;
- }
- queryString = toQueryString(options);
- return _request('GET', "" + _repoPath + "/git/trees/" + tree + queryString, null).then(function(res) {
- return res.tree;
- });
- };
- this.postBlob = function(content, isBase64) {
- var _this = this;
- if (typeof content === 'string') {
- if (isBase64) {
- content = base64encode(content);
- }
- content = {
- content: content,
- encoding: 'utf-8'
- };
- }
- if (isBase64) {
- content.encoding = 'base64';
- }
- return _request('POST', "" + _repoPath + "/git/blobs", content).then(function(res) {
- return res.sha;
- });
- };
- this.updateTreeMany = function(baseTree, newTree) {
- var data,
- _this = this;
- data = {
- base_tree: baseTree,
- tree: newTree
- };
- return _request('POST', "" + _repoPath + "/git/trees", data).then(function(res) {
- return res.sha;
- });
- };
- this.postTree = function(tree) {
- var _this = this;
- return _request('POST', "" + _repoPath + "/git/trees", {
- tree: tree
- }).then(function(res) {
- return res.sha;
- });
- };
- this.commit = function(parents, tree, message) {
- var data;
- if (!_.isArray(parents)) {
- parents = [parents];
- }
- data = {
- message: message,
- parents: parents,
- tree: tree
- };
- return _request('POST', "" + _repoPath + "/git/commits", data).then(function(commit) {
- return commit.sha;
- });
- };
- this.updateHead = function(head, commit, force) {
- var options;
- if (force == null) {
- force = false;
- }
- options = {
- sha: commit
- };
- if (force) {
- options.force = true;
- }
- return _request('PATCH', "" + _repoPath + "/git/refs/heads/" + head, options);
- };
- this.getCommit = function(sha) {
- return _request('GET', "" + _repoPath + "/commits/" + sha, null);
- };
- this.getCommits = function(options) {
- var getDate, queryString;
- if (options == null) {
- options = {};
- }
- options = _.extend({}, options);
- getDate = function(time) {
- if (Date === time.constructor) {
- return time.toISOString();
- }
- return time;
- };
- if (options.since) {
- options.since = getDate(options.since);
- }
- if (options.until) {
- options.until = getDate(options.until);
- }
- queryString = toQueryString(options);
- return _request('GET', "" + _repoPath + "/commits" + queryString, null);
- };
- }
-
- return GitRepo;
-
- })();
- Branch = (function() {
- function Branch(git, getRef) {
- var _getRef, _git;
- _git = git;
- _getRef = getRef || function() {
- throw new Error('BUG: No way to fetch branch ref!');
- };
- this.getCommit = function(sha) {
- return _git.getCommit(sha);
- };
- this.getCommits = function(options) {
- if (options == null) {
- options = {};
- }
- options = _.extend({}, options);
- return _getRef().then(function(branch) {
- options.sha = branch;
- return _git.getCommits(options);
- });
- };
- this.createBranch = function(newBranchName) {
- var _this = this;
- return _getRef().then(function(branch) {
- return _git.getSha(branch, '').then(function(sha) {
- return _git.createRef({
- sha: sha,
- ref: "refs/heads/" + newBranchName
- });
- });
- });
- };
- this.read = function(path, isBase64) {
- var _this = this;
- return _getRef().then(function(branch) {
- return _git.getSha(branch, path).then(function(sha) {
- return _git.getBlob(sha, isBase64).then(function(bytes) {
- return {
- sha: sha,
- content: bytes
- };
- });
- });
- });
- };
- this.contents = function(path) {
- var _this = this;
- return _getRef().then(function(branch) {
- return _git.getSha(branch, '').then(function(sha) {
- return _git.getContents(path, sha).then(function(contents) {
- return contents;
- });
- });
- });
- };
- this.remove = function(path, message, sha) {
- var _this = this;
- if (message == null) {
- message = "Removed " + path;
- }
- if (sha == null) {
- sha = null;
- }
- return _getRef().then(function(branch) {
- if (sha) {
- return _git.removeFile(path, message, sha, branch);
- } else {
- return _git.getSha(branch, path).then(function(sha) {
- return _git.removeFile(path, message, sha, branch);
- });
- }
- });
- };
- this.move = function(path, newPath, message) {
- var _this = this;
- if (message == null) {
- message = "Moved " + path;
- }
- return _getRef().then(function(branch) {
- return _git._updateTree(branch).then(function(latestCommit) {
- return _git.getTree(latestCommit, {
- recursive: true
- }).then(function(tree) {
- _.each(tree, function(ref) {
- if (ref.path === path) {
- ref.path = newPath;
- }
- if (ref.type === 'tree') {
- return delete ref.sha;
- }
- });
- return _git.postTree(tree).then(function(rootTree) {
- return _git.commit(latestCommit, rootTree, message).then(function(commit) {
- return _git.updateHead(branch, commit).then(function(res) {
- return res;
- });
- });
- });
- });
- });
- });
- };
- this.write = function(path, content, message, isBase64, parentCommitSha) {
- var contents;
- if (message == null) {
- message = "Changed " + path;
- }
- if (parentCommitSha == null) {
- parentCommitSha = null;
- }
- contents = {};
- contents[path] = {
- content: content,
- isBase64: isBase64
- };
- return this.writeMany(contents, message, parentCommitSha);
- };
- this.writeMany = function(contents, message, parentCommitShas) {
- var _this = this;
- if (message == null) {
- message = "Changed Multiple";
- }
- if (parentCommitShas == null) {
- parentCommitShas = null;
- }
- return _getRef().then(function(branch) {
- var afterParentCommitShas;
- afterParentCommitShas = function(parentCommitShas) {
- var promises;
- promises = _.map(_.pairs(contents), function(_arg) {
- var content, data, isBase64, path,
- _this = this;
- path = _arg[0], data = _arg[1];
- content = data.content || data;
- isBase64 = data.isBase64 || false;
- return _git.postBlob(content, isBase64).then(function(blob) {
- return {
- path: path,
- mode: '100644',
- type: 'blob',
- sha: blob
- };
- });
- });
- return allPromises(promises).then(function(newTrees) {
- return _git.updateTreeMany(parentCommitShas, newTrees).then(function(tree) {
- return _git.commit(parentCommitShas, tree, message).then(function(commitSha) {
- return _git.updateHead(branch, commitSha).then(function(res) {
- return res.object;
- });
- });
- });
- });
- };
- if (parentCommitShas) {
- return afterParentCommitShas(parentCommitShas);
- } else {
- return _git._updateTree(branch).then(afterParentCommitShas);
- }
- });
- };
- }
-
- return Branch;
-
- })();
- Repository = (function() {
- function Repository(options) {
- var _repo, _user;
- this.options = options;
- _user = this.options.user;
- _repo = this.options.name;
- this.git = new GitRepo(_user, _repo);
- this.repoPath = "/repos/" + _user + "/" + _repo;
- this.currentTree = {
- branch: null,
- sha: null
- };
- this.updateInfo = function(options) {
- return _request('PATCH', this.repoPath, options);
- };
- this.getBranches = function() {
- return this.git.getBranches();
- };
- this.getBranch = function(branchName) {
- var getRef,
- _this = this;
- if (branchName == null) {
- branchName = null;
- }
- if (branchName) {
- getRef = function() {
- return resolvedPromise(branchName);
- };
- return new Branch(this.git, getRef);
- } else {
- return this.getDefaultBranch();
- }
- };
- this.getDefaultBranch = function() {
- var getRef,
- _this = this;
- getRef = function() {
- return _this.getInfo().then(function(info) {
- return info.default_branch;
- });
- };
- return new Branch(this.git, getRef);
- };
- this.setDefaultBranch = function(branchName) {
- return this.updateInfo({
- name: _repo,
- default_branch: branchName
- });
- };
- this.getInfo = function() {
- return _request('GET', this.repoPath, null);
- };
- this.getContents = function(branch, path) {
- return _request('GET', "" + this.repoPath + "/contents?ref=" + branch, {
- path: path
- });
- };
- this.fork = function(organization) {
- if (organization) {
- return _request('POST', "" + this.repoPath + "/forks", {
- organization: organization
- });
- } else {
- return _request('POST', "" + this.repoPath + "/forks", null);
- }
- };
- this.createPullRequest = function(options) {
- return _request('POST', "" + this.repoPath + "/pulls", options);
- };
- this.getCommits = function(options) {
- return this.git.getCommits(options);
- };
- this.getEvents = function() {
- return _request('GET', "" + this.repoPath + "/events", null);
- };
- this.getIssueEvents = function() {
- return _request('GET', "" + this.repoPath + "/issues/events", null);
- };
- this.getNetworkEvents = function() {
- return _request('GET', "/networks/" + _user + "/" + _repo + "/events", null);
- };
- this.getNotifications = function(options) {
- var getDate, queryString;
- if (options == null) {
- options = {};
- }
- getDate = function(time) {
- if (Date === time.constructor) {
- return time.toISOString();
- }
- return time;
- };
- if (options.since) {
- options.since = getDate(options.since);
- }
- queryString = toQueryString(options);
- return _request('GET', "" + this.repoPath + "/notifications" + queryString, null);
- };
- this.getCollaborators = function() {
- return _request('GET', "" + this.repoPath + "/collaborators", null);
- };
- this.addCollaborator = function(username) {
- if (!username) {
- throw new Error('BUG: username is required');
- }
- return _request('PUT', "" + this.repoPath + "/collaborators/" + username, null, {
- isBoolean: true
- });
- };
- this.removeCollaborator = function(username) {
- if (!username) {
- throw new Error('BUG: username is required');
- }
- return _request('DELETE', "" + this.repoPath + "/collaborators/" + username, null, {
- isBoolean: true
- });
- };
- this.isCollaborator = function(username) {
- if (username == null) {
- username = null;
- }
- if (!username) {
- throw new Error('BUG: username is required');
- }
- return _request('GET', "" + this.repoPath + "/collaborators/" + username, null, {
- isBoolean: true
- });
- };
- this.canCollaborate = function() {
- var _this = this;
- if (!(clientOptions.password || clientOptions.token)) {
- return resolvedPromise(false);
- }
- return _client.getLogin().then(function(login) {
- if (!login) {
- return false;
- } else {
- return _this.isCollaborator(login);
- }
- }).then(null, function(err) {
- return false;
- });
- };
- this.getHooks = function() {
- return _request('GET', "" + this.repoPath + "/hooks", null);
- };
- this.getHook = function(id) {
- return _request('GET', "" + this.repoPath + "/hooks/" + id, null);
- };
- this.createHook = function(name, config, events, active) {
- var data;
- if (events == null) {
- events = ['push'];
- }
- if (active == null) {
- active = true;
- }
- data = {
- name: name,
- config: config,
- events: events,
- active: active
- };
- return _request('POST', "" + this.repoPath + "/hooks", data);
- };
- this.editHook = function(id, config, events, addEvents, removeEvents, active) {
- var data;
- if (config == null) {
- config = null;
- }
- if (events == null) {
- events = null;
- }
- if (addEvents == null) {
- addEvents = null;
- }
- if (removeEvents == null) {
- removeEvents = null;
- }
- if (active == null) {
- active = null;
- }
- data = {};
- if (config !== null) {
- data.config = config;
- }
- if (events !== null) {
- data.events = events;
- }
- if (addEvents !== null) {
- data.add_events = addEvents;
- }
- if (removeEvents !== null) {
- data.remove_events = removeEvents;
- }
- if (active !== null) {
- data.active = active;
- }
- return _request('PATCH', "" + this.repoPath + "/hooks/" + id, data);
- };
- this.testHook = function(id) {
- return _request('POST', "" + this.repoPath + "/hooks/" + id + "/tests", null);
- };
- this.deleteHook = function(id) {
- return _request('DELETE', "" + this.repoPath + "/hooks/" + id, null);
- };
- this.getLanguages = function() {
- return _request('GET', "" + this.repoPath + "/languages", null);
- };
- this.getReleases = function() {
- return _request('GET', "" + this.repoPath + "/releases", null);
- };
- }
-
- return Repository;
-
- })();
- Gist = (function() {
- function Gist(options) {
- var id, _gistPath;
- this.options = options;
- id = this.options.id;
- _gistPath = "/gists/" + id;
- this.read = function() {
- return _request('GET', _gistPath, null);
- };
- this.create = function(files, isPublic, description) {
- if (isPublic == null) {
- isPublic = false;
- }
- if (description == null) {
- description = null;
- }
- options = {
- isPublic: isPublic,
- files: files
- };
- if (description != null) {
- options.description = description;
- }
- return _request('POST', "/gists", options);
- };
- this["delete"] = function() {
- return _request('DELETE', _gistPath, null);
- };
- this.fork = function() {
- return _request('POST', "" + _gistPath + "/forks", null);
- };
- this.update = function(files, description) {
- if (description == null) {
- description = null;
- }
- options = {
- files: files
- };
- if (description != null) {
- options.description = description;
- }
- return _request('PATCH', _gistPath, options);
- };
- this.star = function() {
- return _request('PUT', "" + _gistPath + "/star");
- };
- this.unstar = function() {
- return _request('DELETE', "" + _gistPath + "/star");
- };
- this.isStarred = function() {
- return _request('GET', "" + _gistPath, null, {
- isBoolean: true
- });
- };
- }
-
- return Gist;
-
- })();
- this.getRepo = function(user, repo) {
- if (!user) {
- throw new Error('BUG! user argument is required');
- }
- if (!repo) {
- throw new Error('BUG! repo argument is required');
- }
- return new Repository({
- user: user,
- name: repo
- });
- };
- this.getOrg = function(name) {
- return new Organization(name);
- };
- this.getUser = function(login) {
- if (login == null) {
- login = null;
- }
- if (login) {
- return new User(login);
- } else if (clientOptions.password || clientOptions.token) {
- return new AuthenticatedUser();
- } else {
- return null;
- }
- };
- this.getGist = function(id) {
- return new Gist({
- id: id
- });
- };
- this.getLogin = function() {
- if (clientOptions.password || clientOptions.token) {
- return new User().getInfo().then(function(info) {
- return info.login;
- });
- } else {
- return resolvedPromise(null);
- }
- };
- }
-
- return Octokit;
-
- })();
- return Octokit;
- };
-
- if (typeof exports !== "undefined" && exports !== null) {
- Promise = this.Promise || require('es6-promise').Promise;
- XMLHttpRequest = this.XMLHttpRequest || require('xmlhttprequest').XMLHttpRequest;
- newPromise = function(fn) {
- return new Promise(fn);
- };
- allPromises = function(promises) {
- return Promise.all(promises);
- };
- encode = this.btoa || function(str) {
- var buffer;
- buffer = new Buffer(str, 'binary');
- return buffer.toString('base64');
- };
- Octokit = makeOctokit(newPromise, allPromises, XMLHttpRequest, encode, 'octokit');
- exports["new"] = function(options) {
- return new Octokit(options);
- };
- } else {
- createGlobalAndAMD = function(newPromise, allPromises) {
- if (_this.define != null) {
- return _this.define('octokit', [], function() {
- return makeOctokit(newPromise, allPromises, _this.XMLHttpRequest, _this.btoa);
- });
- } else {
- Octokit = makeOctokit(newPromise, allPromises, _this.XMLHttpRequest, _this.btoa);
- _this.Octokit = Octokit;
- return _this.Github = Octokit;
- }
- };
- if (this.Q) {
- newPromise = function(fn) {
- var deferred, reject, resolve;
- deferred = _this.Q.defer();
- resolve = function(val) {
- return deferred.resolve(val);
- };
- reject = function(err) {
- return deferred.reject(err);
- };
- fn(resolve, reject);
- return deferred.promise;
- };
- allPromises = function(promises) {
- return this.Q.all(promises);
- };
- createGlobalAndAMD(newPromise, allPromises);
- } else if (this.angular) {
- injector = angular.injector(['ng']);
- injector.invoke(function($q) {
- newPromise = function(fn) {
- var deferred, reject, resolve;
- deferred = $q.defer();
- resolve = function(val) {
- return deferred.resolve(val);
- };
- reject = function(err) {
- return deferred.reject(err);
- };
- fn(resolve, reject);
- return deferred.promise;
- };
- allPromises = function(promises) {
- return $q.all(promises);
- };
- return createGlobalAndAMD(newPromise, allPromises);
- });
- } else if ((_ref = this.jQuery) != null ? _ref.Deferred : void 0) {
- newPromise = function(fn) {
- var promise, reject, resolve;
- promise = _this.jQuery.Deferred();
- resolve = function(val) {
- return promise.resolve(val);
- };
- reject = function(val) {
- return promise.reject(val);
- };
- fn(resolve, reject);
- return promise.promise();
- };
- allPromises = function(promises) {
- var _ref1;
- return (_ref1 = _this.jQuery).when.apply(_ref1, promises).then(function() {
- var promises;
- promises = 1 <= arguments.length ? __slice.call(arguments, 0) : [];
- return promises;
- });
- };
- createGlobalAndAMD(newPromise, allPromises);
- } else if (this.Promise) {
- newPromise = function(fn) {
- return new _this.Promise(function(resolve, reject) {
- if (resolve.fulfill) {
- return fn(resolve.resolve.bind(resolve), resolve.reject.bind(resolve));
- } else {
- return fn.apply(null, arguments);
- }
- });
- };
- allPromises = this.Promise.all;
- createGlobalAndAMD(newPromise, allPromises);
- } else {
- err = function(msg) {
- if (typeof console !== "undefined" && console !== null) {
- if (typeof console.error === "function") {
- console.error(msg);
- }
- }
- throw new Error(msg);
- };
- err('A Promise API was not found. Supported libraries that have Promises are jQuery, angularjs, and https://github.com/jakearchibald/es6-promise');
- }
- }
-
-}).call(this);